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 get : 'Ocsipersist.t -> 'Lwt.t
  val set : 'Ocsipersist.t -> '-> unit Lwt.t
  type 'a table
  val open_table : string -> 'Ocsipersist.table
  val find : 'Ocsipersist.table -> string -> 'Lwt.t
  val add : 'Ocsipersist.table -> string -> '-> unit Lwt.t
  val remove : 'Ocsipersist.table -> string -> unit Lwt.t
  val length : 'Ocsipersist.table -> int Lwt.t
  val iter_table :
    (string -> '-> unit Lwt.t) -> 'Ocsipersist.table -> unit Lwt.t
end