functor
  (Basetypes : Shredded_store_sigs.Shredded_Basetypes) (Store : sig
                                                                  type handle
                                                                  type stored_nodeid =
                                                                    Basetypes.stored_nodeid
                                                                  type record_kind =
                                                                    Basetypes.record_kind
                                                                  type elem_eqnameid =
                                                                    Basetypes.eqnameid
                                                                  type attr_eqnameid =
                                                                    Basetypes.eqnameid
                                                                  type type_eqnameid =
                                                                    Basetypes.eqnameid
                                                                  val encode_elem_eqnameid :
                                                                    handle ->
                                                                    Namespace_symbols.relem_symbol ->
                                                                    elem_eqnameid
                                                                  val encode_attr_eqnameid :
                                                                    handle ->
                                                                    Namespace_symbols.rattr_symbol ->
                                                                    attr_eqnameid
                                                                  val encode_type_eqnameid :
                                                                    handle ->
                                                                    Namespace_symbols.rtype_symbol ->
                                                                    type_eqnameid
                                                                  val get_record_kind :
                                                                    handle ->
                                                                    stored_nodeid ->
                                                                    record_kind
                                                                  val get_elem_name :
                                                                    handle ->
                                                                    stored_nodeid ->
                                                                    Namespace_symbols.relem_symbol
                                                                  val get_attr_name :
                                                                    handle ->
                                                                    stored_nodeid ->
                                                                    Namespace_symbols.rattr_symbol
                                                                  val get_type :
                                                                    handle ->
                                                                    stored_nodeid ->
                                                                    Namespace_symbols.rtype_symbol
                                                                    option
                                                                  val get_elem_eqnameid :
                                                                    handle ->
                                                                    stored_nodeid ->
                                                                    elem_eqnameid
                                                                  val get_attr_eqnameid :
                                                                    handle ->
                                                                    stored_nodeid ->
                                                                    elem_eqnameid
                                                                  val get_type_eqnameid :
                                                                    handle ->
                                                                    stored_nodeid ->
                                                                    elem_eqnameid
                                                                    option
                                                                  val get_elem_name_eqnameid_with_type_name :
                                                                    handle ->
                                                                    stored_nodeid ->
                                                                    elem_eqnameid *
                                                                    Namespace_symbols.rtype_symbol
                                                                    option
                                                                  val get_attr_name_eqnameid_with_type_name :
                                                                    handle ->
                                                                    stored_nodeid ->
                                                                    attr_eqnameid *
                                                                    Namespace_symbols.rtype_symbol
                                                                    option
                                                                  val get_single_element_node :
                                                                    handle ->
                                                                    stored_nodeid ->
                                                                    stored_nodeid
                                                                  val get_pi_target :
                                                                    handle ->
                                                                    stored_nodeid ->
                                                                    string
                                                                end->
  sig
    type handle = Store.handle
    type shred_kind_test
    val shred_kind_test_of_akind_test :
      Shredded_dm_step.Shredded_XPath_Step_Functor_Sig.handle ->
      Xquery_algebra_ast.akind_test ->
      Shredded_dm_step.Shredded_XPath_Step_Functor_Sig.shred_kind_test
    type shred_node_test
    val shred_node_test_of_anode_test :
      Shredded_dm_step.Shredded_XPath_Step_Functor_Sig.handle ->
      Xquery_algebra_ast.anode_test ->
      Shredded_dm_step.Shredded_XPath_Step_Functor_Sig.shred_node_test
    val item_matches_kind_test :
      Shredded_dm_step.Shredded_XPath_Step_Functor_Sig.handle ->
      Xquery_type_core_ast.cxschema ->
      Shredded_dm_step.Shredded_XPath_Step_Functor_Sig.shred_kind_test ->
      Store.stored_nodeid -> bool
    val eval_node_test_gen :
      Shredded_dm_step.Shredded_XPath_Step_Functor_Sig.handle ->
      Xquery_type_core_ast.cxschema option ->
      Xquery_common_ast.axis ->
      Shredded_dm_step.Shredded_XPath_Step_Functor_Sig.shred_node_test ->
      Store.stored_nodeid -> bool
  end