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
  val string_of_number : float -> string
  module Utf8 :
    sig
      type utf8 = string
      val normalize : string -> Xml_print.Utf8.utf8 * bool
      val normalize_html : string -> Xml_print.Utf8.utf8 * bool
    end
  module Make :
    functor
      (Xml : Xml_sigs.Iterable) (I : sig val emptytags : string list end) (O : Xml_sigs.Output->
      sig
        val print_list : ?encode:(string -> string) -> Xml.elt list -> O.out
      end
  module Make_typed :
    functor
      (Xml : Xml_sigs.Iterable) (Typed_xml : sig
                                               module Info : Xml_sigs.Info
                                               type 'a elt
                                               type doc
                                               val toelt : 'a elt -> Xml.elt
                                               val doc_toelt : doc -> Xml.elt
                                             end) (O : Xml_sigs.Output->
      sig
        val print_list :
          ?encode:(string -> string) -> 'Typed_xml.elt list -> O.out
        val print :
          ?encode:(string -> string) ->
          ?advert:string -> Typed_xml.doc -> O.out
      end
  module Make_simple :
    functor
      (Xml : Xml_sigs.Iterable) (F : sig val emptytags : string list end->
      sig
        val print_list :
          output:(string -> unit) ->
          ?encode:(string -> string) -> Xml.elt list -> unit
      end
  module Make_typed_simple :
    functor
      (Xml : Xml_sigs.Iterable) (Typed_xml : 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) -> 'Typed_xml.elt list -> unit
        val print :
          output:(string -> unit) ->
          ?encode:(string -> string) ->
          ?advert:string -> Typed_xml.doc -> unit
      end
end