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