sig
  type t = {{Any}}
  val print : Format.formatter -> {{Any}} -> unit
  val to_string : {{Any}} -> string
  val hash : Ocamlduce.t -> int
  val equal : Ocamlduce.t -> Ocamlduce.t -> bool
  val compare : Ocamlduce.t -> Ocamlduce.t -> int
  module Int :
    sig
      type t = {{Int}}
      type repr = {{repr}}
      val make : Ocamlduce.Int.repr -> Ocamlduce.Int.t
      val get : Ocamlduce.Int.t -> Ocamlduce.Int.repr
    end
  module NonnegInt :
    sig
      type t = {{t}}
      type repr = {{repr}}
      val make : Ocamlduce.NonnegInt.repr -> Ocamlduce.NonnegInt.t
      val get : Ocamlduce.NonnegInt.t -> Ocamlduce.NonnegInt.repr
    end
  module Utf8 :
    sig
      type t = {{String}}
      type repr = string
      val make : Ocamlduce.Utf8.repr -> Ocamlduce.Utf8.t
      val get : Ocamlduce.Utf8.t -> Ocamlduce.Utf8.repr
    end
  module Latin1 :
    sig
      type t = {{Latin1}}
      type repr = string
      val make : Ocamlduce.Latin1.repr -> Ocamlduce.Latin1.t
      val get : Ocamlduce.Latin1.t -> Ocamlduce.Latin1.repr
    end
  module Namespace :
    sig
      type t
      type repr = {{String}}
      val make : Ocamlduce.Namespace.repr -> Ocamlduce.Namespace.t
      val get : Ocamlduce.Namespace.t -> Ocamlduce.Namespace.repr
      val empty : Ocamlduce.Namespace.t
      val xml : Ocamlduce.Namespace.t
      val compare : Ocamlduce.Namespace.t -> Ocamlduce.Namespace.t -> int
      val equal : Ocamlduce.Namespace.t -> Ocamlduce.Namespace.t -> bool
      val hash : Ocamlduce.Namespace.t -> int
    end
  module Atom :
    sig
      type t = {{Atom}}
      type repr = Ocamlduce.Namespace.t * {{String}}
      val make : Ocamlduce.Atom.repr -> Ocamlduce.Atom.t
      val get : Ocamlduce.Atom.t -> Ocamlduce.Atom.repr
      val compare : Ocamlduce.Atom.t -> Ocamlduce.Atom.t -> int
      val equal : Ocamlduce.Atom.t -> Ocamlduce.Atom.t -> bool
      val hash : Ocamlduce.Atom.t -> int
    end
  module NamespaceTable :
    sig
      type t
      type repr = ({{String}} * Ocamlduce.Namespace.t) list
      val make : Ocamlduce.NamespaceTable.repr -> Ocamlduce.NamespaceTable.t
      val get : Ocamlduce.NamespaceTable.t -> Ocamlduce.NamespaceTable.repr
      val empty : Ocamlduce.NamespaceTable.t
      val resolve_prefix :
        Ocamlduce.NamespaceTable.t -> {{String}} -> Ocamlduce.Namespace.t
      val resolve_qname :
        Ocamlduce.NamespaceTable.t -> {{String}} -> Ocamlduce.Atom.t
    end
  module NamespaceScope :
    sig
      type elt = {{elt}}
      val get : Ocamlduce.NamespaceScope.elt -> Ocamlduce.NamespaceTable.t
      val set :
        Ocamlduce.NamespaceScope.elt ->
        Ocamlduce.NamespaceTable.t -> Ocamlduce.NamespaceScope.elt
      val resolve_prefix :
        Ocamlduce.NamespaceScope.elt -> {{String}} -> Ocamlduce.Namespace.t
      val resolve_qname :
        Ocamlduce.NamespaceScope.elt -> {{String}} -> Ocamlduce.Atom.t
    end
  module Load :
    sig
      type t
      type anyxml = {{anyxml}}
      exception Error of string
      val make :
        ?ns:bool ->
        ?ns_table:Ocamlduce.NamespaceTable.t -> unit -> Ocamlduce.Load.t
      val get : Ocamlduce.Load.t -> Ocamlduce.Load.anyxml
      val start_elem :
        Ocamlduce.Load.t -> string -> (string * string) list -> unit
      val end_elem : Ocamlduce.Load.t -> '-> unit
      val text : Ocamlduce.Load.t -> string -> unit
      val sub : Ocamlduce.Load.t -> Ocamlduce.Load.anyxml -> unit
    end
  module Print :
    sig
      exception Error of string * {{Any}}
      val serialize :
        start_elem:(string -> (string * string) list -> unit) ->
        end_elem:(string -> unit) ->
        empty_elem:(string -> (string * string) list -> unit) ->
        text:(string -> unit) ->
        ?ns:Ocamlduce.NamespaceTable.t -> Ocamlduce.Load.anyxml -> unit
      val print_xml :
        (string -> unit) ->
        ?data:(string -> unit) ->
        ?ns:Ocamlduce.NamespaceTable.t -> Ocamlduce.Load.anyxml -> unit
    end
  module Record :
    sig
      type t = {{t}}
      type repr = ({{Atom}} * {{Any}}) list
      val make : Ocamlduce.Record.repr -> Ocamlduce.Record.t
      val get : Ocamlduce.Record.t -> Ocamlduce.Record.repr
    end
end