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