sig
  exception No_change
  type name = string * string
  type attribute = Xtmpl.name * string
  type env
  and callback =
      Xtmpl.env -> Xtmpl.attribute list -> Xtmpl.tree list -> Xtmpl.tree list
  and tree =
      E of Xtmpl.name * Xtmpl.attribute list * Xtmpl.tree list
    | D of string
  val env_empty : Xtmpl.env
  val env_add :
    ?prefix:string -> string -> Xtmpl.callback -> Xtmpl.env -> Xtmpl.env
  val env_get : Xtmpl.name -> Xtmpl.env -> Xtmpl.callback option
  val string_of_env : Xtmpl.env -> string
  val env_add_att :
    ?prefix:string -> string -> string -> Xtmpl.env -> Xtmpl.env
  val env_of_list :
    ?env:Xtmpl.env -> (Xtmpl.name * Xtmpl.callback) list -> Xtmpl.env
  val tag_main : string
  val tag_env : string
  val string_of_xml : Xtmpl.tree -> string
  val string_of_xmls : Xtmpl.tree list -> string
  val xml_of_string : ?add_main:bool -> string -> Xtmpl.tree
  val xml_of_file : string -> Xtmpl.tree
  val apply_to_string : Xtmpl.env -> string -> Xtmpl.tree list
  val apply_to_file : Xtmpl.env -> string -> Xtmpl.tree list
  val apply_to_xmls : Xtmpl.env -> Xtmpl.tree list -> Xtmpl.tree list
  val apply_into_file :
    ?head:string -> Xtmpl.env -> infile:string -> outfile:string -> unit
  val apply_string_into_file :
    ?head:string -> Xtmpl.env -> outfile:string -> string -> unit
  val get_arg : Xtmpl.attribute list -> Xtmpl.name -> string option
  val string_of_args : Xtmpl.attribute list -> string
  val opt_arg : Xtmpl.attribute list -> ?def:string -> Xtmpl.name -> string
end