sig
  module type Main_Memory_Btree_Functor_Sig =
    functor (Key : Shredded_store_sigs.Shredded_OrderedType->
      functor (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