sig
  val implemid : Nodeid.implemid
  val implem_name : string
  val is_persistent : unit -> bool
  type store_id
  type docorder = Nodeid.docorder
  type preorder = Nodeid.large_preorder
  module Preorder_Module :
    sig
      type t = preorder
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
      val compare : t -> t -> int
      val fprintf_value : Format.formatter -> t -> unit
    end
  type nodeid = Nodeid.nodeid
  type stored_nodeid = int
  module Stored_Nodeid_Module :
    sig
      type t = stored_nodeid
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
      val compare : t -> t -> int
      val fprintf_value : Format.formatter -> t -> unit
    end
  type stored_preorder_nodeid_pair =
      Shredded_store_sigs.Shredded_Basetypes.preorder *
      Shredded_store_sigs.Shredded_Basetypes.stored_nodeid
  module Stored_Preorder_Nodeid_Module :
    sig
      type t = stored_preorder_nodeid_pair
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
      val compare : t -> t -> int
      val fprintf_value : Format.formatter -> t -> unit
    end
  module Stored_Preorder_Nodeid_Record_Module :
    sig
      type record = stored_preorder_nodeid_pair
      val is_fixed_length : unit -> bool
      val get_record_size : unit -> int
      val encode : record -> char array
      val decode : char array -> record
    end
  type textid = int
  module Textid_Module :
    sig
      type t = textid
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
      val compare : t -> t -> int
      val fprintf_value : Format.formatter -> t -> unit
    end
  type namespaceid = int
  module Namespaceid_Module :
    sig
      type t = namespaceid
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type binding =
      Shredded_store_sigs.Shredded_Basetypes.namespaceid *
      Namespace_context.binding_table
  module Binding_Module :
    sig
      type t = binding
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type comment = string
  module Comment_Module :
    sig
      type t = comment
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type eqnameid = int
  module Eqnameid_Module :
    sig
      type t = eqnameid
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type eqname = Namespace_names.uri * Namespace_names.ncname
  module Eqname_Module :
    sig
      type t = eqname
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type prefixid = int
  module Prefixid_Module :
    sig
      type t = prefixid
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type prefix = string
  module Prefix_Module :
    sig
      type t = prefix
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type stored_atomic_value_list =
      Shredded_store_sigs.Shredded_Basetypes.namespaceid *
      (Datatypes.atomic_type * string) list
  module Stored_Atomic_Value_List_Module :
    sig
      type t = stored_atomic_value_list
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type stored_atomic_value_list_with_nilled =
      bool * Shredded_store_sigs.Shredded_Basetypes.stored_atomic_value_list
  module Stored_Atomic_Value_List_With_Nilled_Module :
    sig
      type t = stored_atomic_value_list_with_nilled
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type commentid = int
  module Commentid_Module :
    sig
      type t = commentid
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type processing = Namespace_names.ncname * Datatypes.xs_untyped
  module Processing_Instruction_Module :
    sig
      type t = processing
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type processingid = int
  module Processingid_Module :
    sig
      type t = processingid
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type text
  module Text_Module :
    sig
      type t = text
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
      val compare : t -> t -> int
      val fprintf_value : Format.formatter -> t -> unit
    end
  type metadata_key = string
  module Metadata_Key_Module :
    sig
      type t = metadata_key
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type metadata_value = string
  module Metadata_Value_Module :
    sig
      type t = metadata_value
      type encoded_type = char array
      val encode : t -> encoded_type
      val decode : encoded_type -> t
    end
  type cell_id
  module Cell_Id : Shredded_Cell_Type
  val string_of_text : Shredded_store_sigs.Shredded_Basetypes.text -> string
  val text_of_xml_attribute :
    string -> Shredded_store_sigs.Shredded_Basetypes.text
  val xml_attribute_of_text :
    Shredded_store_sigs.Shredded_Basetypes.text -> string
  val text_of_text_desc :
    string -> Shredded_store_sigs.Shredded_Basetypes.text
  val text_desc_of_text :
    Shredded_store_sigs.Shredded_Basetypes.text -> string
  val xs_untyped_of_text :
    Shredded_store_sigs.Shredded_Basetypes.text -> Datatypes.xs_untyped
  val text_of_xs_untyped :
    Datatypes.xs_untyped -> Shredded_store_sigs.Shredded_Basetypes.text
  type elem_eqnameid = Shredded_store_sigs.Shredded_Basetypes.eqnameid
  type attr_eqnameid = Shredded_store_sigs.Shredded_Basetypes.eqnameid
  type type_eqnameid = Shredded_store_sigs.Shredded_Basetypes.eqnameid
  type elem_symbol =
      Shredded_store_sigs.Shredded_Basetypes.prefixid *
      Shredded_store_sigs.Shredded_Basetypes.elem_eqnameid
  type attr_symbol =
      Shredded_store_sigs.Shredded_Basetypes.prefixid *
      Shredded_store_sigs.Shredded_Basetypes.attr_eqnameid
  type type_symbol =
      Shredded_store_sigs.Shredded_Basetypes.prefixid *
      Shredded_store_sigs.Shredded_Basetypes.type_eqnameid
  type record_specific =
      ElementRecord of
        (Shredded_store_sigs.Shredded_Basetypes.elem_symbol *
         Shredded_store_sigs.Shredded_Basetypes.namespaceid *
         Shredded_store_sigs.Shredded_Basetypes.type_symbol option)
    | AttributeRecord of
        (Shredded_store_sigs.Shredded_Basetypes.attr_symbol *
         Shredded_store_sigs.Shredded_Basetypes.textid *
         Shredded_store_sigs.Shredded_Basetypes.type_symbol option)
    | TextRecord of Shredded_store_sigs.Shredded_Basetypes.textid
    | PIRecord of Shredded_store_sigs.Shredded_Basetypes.processingid
    | CommentRecord of Shredded_store_sigs.Shredded_Basetypes.commentid
    | DocumentRecord
  type record_kind =
      ElementRecordKind
    | AttributeRecordKind
    | TextRecordKind
    | PIRecordKind
    | CommentRecordKind
    | DocumentRecordKind
  type nsenv_hash_table_type =
      (Shredded_store_sigs.Shredded_Basetypes.namespaceid,
       Namespace_context.nsenv)
      Hashtbl.t
  module Stored_Nodeid_Generator :
    sig
      type handle
      type t = stored_nodeid
      val seed_value : t
      val build_gen : t -> handle
      val new_value : handle -> t
    end
  module Textid_Generator :
    sig
      type handle
      type t = textid
      val seed_value : t
      val build_gen : t -> handle
      val new_value : handle -> t
    end
  module Namespaceid_Generator :
    sig
      type handle
      type t = namespaceid
      val seed_value : t
      val build_gen : t -> handle
      val new_value : handle -> t
    end
  module Commentid_Generator :
    sig
      type handle
      type t = commentid
      val seed_value : t
      val build_gen : t -> handle
      val new_value : handle -> t
    end
  module Processingid_Generator :
    sig
      type handle
      type t = processingid
      val seed_value : t
      val build_gen : t -> handle
      val new_value : handle -> t
    end
  module Prefixid_Generator :
    sig
      type handle
      type t = prefixid
      val seed_value : t
      val build_gen : t -> handle
      val new_value : handle -> t
    end
  module Eqnameid_Generator :
    sig
      type handle
      type t = eqnameid
      val seed_value : t
      val build_gen : t -> handle
      val new_value : handle -> t
    end
end