sig
  module type Main_Memory_Btree_Functor_Sig =
    functor
      (Key : Shredded_store_sigs.Shredded_OrderedType) (Value : Shredded_store_sigs.Shredded_OrderedType->
      sig
        type btree_handle
        type btree_key = Key.t
        type btree_value = Value.t
        type btree_cursor
        val empty_tree :
          unit ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle
        val btree_get_set :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_get_set_range :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_get_both :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_get_both_range :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_get_all :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value
          Cursor.cursor
        val btree_put :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value ->
          unit
        val btree_delete :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value ->
          unit
        val btree_delete_all :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key ->
          unit
        val btree_sync :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          unit
        val btree_close :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          unit
        val btree_get :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value
          option
        val btree_open :
          string ->
          int ->
          bool ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle
        type cursor_direction = Next | Prev
        val btree_cursor_open :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_handle ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor
        val btree_cursor_to_cursor :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.cursor_direction ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          Cursor.cursor
        val btree_cursor_put :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value ->
          unit
        val btree_cursor_get_first :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_cursor_get_last :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_cursor_get_next :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_cursor_get_prev :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_cursor_get_set :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_cursor_get_both :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_cursor_get_set_range :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_cursor_get_both_range :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value ->
          (Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_key *
           Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_value)
          option
        val btree_cursor_del :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          unit
        val btree_cursor_close :
          Shredded_main_memory_btree.Main_Memory_Btree_Functor_Sig.btree_cursor ->
          unit
      end
  module Main_Memory_Btree_Functor : Main_Memory_Btree_Functor_Sig
end