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