package apero-core

  1. Overview
  2. Docs
type 'a t
val create : 'a -> 'a t
val create_empty : unit -> 'a t
val put : 'a t -> 'a -> unit Lwt.t
val take : 'a t -> 'a Lwt.t
val take_available : 'a t -> 'a option
val is_empty : 'a t -> bool
val read : 'a t -> 'a Lwt.t
val guarded : 'a t -> ('a -> ('b Lwt.t * 'a) Lwt.t) -> 'b Lwt.t
val guarded_and_then : 'a t -> ('a -> ('b Lwt.t * 'a) Lwt.t) -> ('a -> 'b Lwt.t -> 'c Lwt.t) -> 'c Lwt.t
val return : 'b -> 'a -> ('b Lwt.t * 'a) Lwt.t
val return_lwt : 'b Lwt.t -> 'a -> ('b Lwt.t * 'a) Lwt.t