sig
  type 'a t
  type store
  val open_store : string -> Ocsipersist.store
  val make_persistent :
    store:Ocsipersist.store ->
    name:string -> default:'-> 'Ocsipersist.t Lwt.t
  val make_persistent_lazy :
    store:Ocsipersist.store ->
    name:string -> default:(unit -> 'a) -> 'Ocsipersist.t Lwt.t
  val make_persistent_lazy_lwt :
    store:Ocsipersist.store ->
    name:string -> default:(unit -> 'Lwt.t) -> 'Ocsipersist.t Lwt.t
  val get : 'Ocsipersist.t -> 'Lwt.t
  val set : 'Ocsipersist.t -> '-> unit Lwt.t
  type 'value table
  val table_name : 'value Ocsipersist.table -> string Lwt.t
  val open_table : string -> 'value Ocsipersist.table
  val find : 'value Ocsipersist.table -> string -> 'value Lwt.t
  val add : 'value Ocsipersist.table -> string -> 'value -> unit Lwt.t
  val replace_if_exists :
    'value Ocsipersist.table -> string -> 'value -> unit Lwt.t
  val remove : 'value Ocsipersist.table -> string -> unit Lwt.t
  val length : 'value Ocsipersist.table -> int Lwt.t
  val iter_step :
    (string -> '-> unit Lwt.t) -> 'Ocsipersist.table -> unit Lwt.t
  val iter_table :
    (string -> '-> unit Lwt.t) -> 'Ocsipersist.table -> unit Lwt.t
  val fold_step :
    (string -> '-> '-> 'Lwt.t) ->
    'Ocsipersist.table -> '-> 'Lwt.t
  val fold_table :
    (string -> '-> '-> 'Lwt.t) ->
    'Ocsipersist.table -> '-> 'Lwt.t
  val iter_block :
    (string -> '-> unit) -> 'Ocsipersist.table -> unit Lwt.t
end