sig
  module type Shredded_Store_Functor_Sig =
    functor (Basetypes : Shredded_store_sigs.Shredded_Basetypes->
      functor
        (Record : sig
                    type record
                    type preorder = Basetypes.preorder
                    type stored_nodeid = Basetypes.stored_nodeid
                    type record_specific = Basetypes.record_specific
                    type record_kind = Basetypes.record_kind
                    type eqnameid = Basetypes.eqnameid
                    type namespaceid = Basetypes.namespaceid
                    type prefixid = Basetypes.prefixid
                    type textid = Basetypes.textid
                    type commentid = Basetypes.commentid
                    type processingid = Basetypes.processingid
                    type symbol = prefixid * eqnameid
                    val is_fixed_length : unit -> bool
                    val get_record_size : unit -> int
                    val encode : record -> char array
                    val decode : char array -> record
                    val create_record :
                      preorder ->
                      stored_nodeid option -> record_specific -> record
                    val get_preorder : record -> preorder
                    val set_preorder : record -> preorder -> record
                    val get_parent : record -> stored_nodeid option
                    val set_parent : record -> stored_nodeid option -> record
                    val get_name_eqnameid : record -> eqnameid
                    val get_name_prefixid : record -> prefixid
                    val get_name_symbol : record -> symbol
                    val set_name_symbol : record -> symbol -> record
                    val get_type_eqnameid : record -> eqnameid option
                    val get_type_prefixid : record -> prefixid option
                    val get_type_symbol : record -> symbol option
                    val set_type_symbol : record -> symbol option -> record
                    val get_attribute_value_id : record -> textid
                    val get_textid : record -> textid
                    val get_kind : record -> record_kind
                    val get_specific : record -> record_specific
                    val get_namespaceid : record -> namespaceid
                    val is_text_record : record -> bool
                    val is_elem_record : record -> bool
                    val is_attr_record : record -> bool
                    val get_commentid : record -> commentid
                    val get_processing_instruction_id :
                      record -> processingid
                  end->
        functor
          (Shredded_Recno : Shredded_store_sigs.Shredded_Recno_Functor_Sig->
          functor
            (Shredded_Btree_Functor : Shredded_store_sigs.Shredded_Btree_Functor_Sig->
            functor
              (Shredded_Hash_Functor : Shredded_store_sigs.Shredded_Hash_Functor_Sig->
              sig
                type shredded_store
                val create_shredded_store :
                  Nodeid_context.nodeid_context ->
                  string ->
                  string ->
                  int ->
                  Shredded_store.Shredded_Store_Functor_Sig.shredded_store
                val open_store :
                  string ->
                  string ->
                  Shredded_store.Shredded_Store_Functor_Sig.shredded_store
                val close_store :
                  Shredded_store.Shredded_Store_Functor_Sig.shredded_store ->
                  unit
                val sync_store :
                  Shredded_store.Shredded_Store_Functor_Sig.shredded_store ->
                  unit
                val implemid : Nodeid.implemid
                val print_store :
                  Shredded_store.Shredded_Store_Functor_Sig.shredded_store ->
                  Nodeid.large_preorder -> unit
                val get_docid :
                  Shredded_store.Shredded_Store_Functor_Sig.shredded_store ->
                  Nodeid.docid
                val get_root :
                  Shredded_store.Shredded_Store_Functor_Sig.shredded_store ->
                  Nodeid.nodeid
                val get_store_from_docid :
                  Nodeid.docid ->
                  Shredded_store.Shredded_Store_Functor_Sig.shredded_store
                val preorder_of_nodeid :
                  Nodeid.nodeid -> Nodeid.large_preorder
                val docid_of_nodeid : Nodeid.nodeid -> Nodeid.docid
                val docid_preorder_of_nodeid :
                  Nodeid.nodeid -> Nodeid.docid * Nodeid.large_preorder
                val get_name_of_docid : Nodeid.docid -> string * string
                val get_first_child : Nodeid.nodeid -> Nodeid.nodeid option
                val get_next_sibling : Nodeid.nodeid -> Nodeid.nodeid option
                val get_children :
                  Nodeid.nodeid ->
                  (Xquery_type_core_ast.cxschema option *
                   Xquery_algebra_ast.anode_test)
                  option -> Nodeid.nodeid Cursor.cursor
                val get_attributes :
                  Nodeid.nodeid ->
                  (Xquery_type_core_ast.cxschema option *
                   Xquery_algebra_ast.anode_test)
                  option -> Nodeid.nodeid Cursor.cursor
                val get_parent :
                  Nodeid.nodeid ->
                  (Xquery_type_core_ast.cxschema option *
                   Xquery_algebra_ast.anode_test)
                  option -> Nodeid.nodeid option
                val get_nodekind : Nodeid.nodeid -> Basetypes.record_kind
                val get_doc_uri :
                  Nodeid.nodeid -> Dm_atomic.atomicString option
                val get_elem_name :
                  Nodeid.nodeid -> Namespace_symbols.relem_symbol
                val set_elem_name :
                  Nodeid.nodeid -> Namespace_symbols.relem_symbol -> unit
                val get_attr_name :
                  Nodeid.nodeid -> Namespace_symbols.rattr_symbol
                val set_attr_name :
                  Nodeid.nodeid -> Namespace_symbols.rattr_symbol -> unit
                val get_type_name :
                  Nodeid.nodeid -> Namespace_symbols.rtype_symbol option
                val set_type_name :
                  Nodeid.nodeid ->
                  Namespace_symbols.rtype_symbol option -> unit
                val retrieve_typed_element :
                  Nodeid.nodeid ->
                  (Dm_types.nilled * Dm_atomic.atomicValue list) option
                val retrieve_typed_attribute :
                  Nodeid.nodeid -> Dm_atomic.atomicValue list option
                val get_content : Nodeid.nodeid -> Datatypes.xs_string
                val get_nsenv : Nodeid.nodeid -> Namespace_context.nsenv
                val get_pi_target : Nodeid.nodeid -> Datatypes.xs_string
                val get_pi_value : Nodeid.nodeid -> Datatypes.xs_string
                val get_comment_value : Nodeid.nodeid -> Datatypes.xs_string
                val get_last_descendant : Nodeid.nodeid -> Nodeid.nodeid
                val improved_descendant :
                  Nodeid.nodeid ->
                  (Xquery_type_core_ast.cxschema option *
                   Xquery_algebra_ast.anode_test)
                  option -> Nodeid.nodeid Cursor.cursor
                val improved_descendant_or_self :
                  Nodeid.nodeid ->
                  (Xquery_type_core_ast.cxschema option *
                   Xquery_algebra_ast.anode_test)
                  option -> Nodeid.nodeid Cursor.cursor
                val load_shredded_store_from_resolved_stream :
                  Nodeid_context.nodeid_context ->
                  Streaming_types.resolved_xml_stream ->
                  string ->
                  string ->
                  int ->
                  Shredded_store.Shredded_Store_Functor_Sig.shredded_store
                val load_shredded_store_from_ordered_typed_stream :
                  Nodeid_context.nodeid_context ->
                  Streaming_types.ordered_typed_xml_stream ->
                  string ->
                  string ->
                  int ->
                  Shredded_store.Shredded_Store_Functor_Sig.shredded_store
                val insert_node :
                  Nodeid.nodeid option ->
                  Nodeid.nodeid -> Physical_value.item Cursor.cursor -> unit
                val detach_node : Nodeid.nodeid -> unit
                val recno_iter :
                  (Record.record -> unit) ->
                  Shredded_store.Shredded_Store_Functor_Sig.shredded_store ->
                  unit
              end
  module Shredded_Store_Functor : Shredded_Store_Functor_Sig
end