sig
  val encode_unsafe_char : string -> string
  val encode_unsafe_char_and_at : string -> string
  val compose_decl : ?version:string -> ?encoding:string -> unit -> string
  val compose_doctype : string -> string list -> string
  module Make :
    functor (XML : XML_sigs.Iterable->
      functor (I : sig val emptytags : string list end->
        functor (O : XML_sigs.Output->
          sig
            val print_list :
              ?encode:(string -> string) -> XML.elt list -> O.out
          end
  module MakeTyped :
    functor (XML : XML_sigs.Iterable->
      functor
        (TypedXML : sig
                      module Info : XML_sigs.Info
                      type 'a elt
                      type doc
                      val toelt : 'a elt -> XML.elt
                      val doc_toelt : doc -> XML.elt
                    end->
        functor (O : XML_sigs.Output->
          sig
            val print_list :
              ?encode:(string -> string) -> 'TypedXML.elt list -> O.out
            val print :
              ?encode:(string -> string) ->
              ?advert:string -> TypedXML.doc -> O.out
          end
  module MakeSimple :
    functor (XML : XML_sigs.Iterable->
      functor (F : sig val emptytags : string list end->
        sig
          val print_list :
            output:(string -> unit) ->
            ?encode:(string -> string) -> XML.elt list -> unit
        end
  module MakeTypedSimple :
    functor (XML : XML_sigs.Iterable->
      functor
        (TypedXML : sig
                      module Info : XML_sigs.Info
                      type 'a elt
                      type doc
                      val toelt : 'a elt -> XML.elt
                      val doc_toelt : doc -> XML.elt
                    end->
        sig
          val print_list :
            output:(string -> unit) ->
            ?encode:(string -> string) -> 'TypedXML.elt list -> unit
          val print :
            output:(string -> unit) ->
            ?encode:(string -> string) ->
            ?advert:string -> TypedXML.doc -> unit
        end
end