sig
  module type Shredded_Store_Functor_Sig =
    functor
      (Basetypes : Shredded_store_sigs.Shredded_Basetypes) (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) (Shredded_Recno : Shredded_store_sigs.Shredded_Recno_Functor_Sig) (Shredded_Btree_Functor : Shredded_store_sigs.Shredded_Btree_Functor_Sig) (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