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