sig
  type var =
      VarString of string
    | VarTable of CamlGI.Template.table_row list
    | VarConditional of bool
    | VarCallback of (string list -> string)
  and table_row = (string * CamlGI.Template.var) list
  class template :
    ?filename:string ->
    string ->
    object
      method callback : string -> (string list -> string) -> unit
      method conditional : string -> bool -> unit
      method output : (string -> unit) -> unit
      method set : string -> string -> unit
      method source : string
      method table : string -> CamlGI.Template.table_row list -> unit
      method to_channel : Pervasives.out_channel -> unit
      method to_string : string
    end
  val template : string -> CamlGI.Template.template
  val template_from_string :
    ?filename:string -> string -> CamlGI.Template.template
  val template_from_channel :
    ?filename:string -> Pervasives.in_channel -> CamlGI.Template.template
end