sig
type +'a t
type 'a deferred = 'a Raw_deferred.t
val of_ivar : 'a Raw_ivar.t -> 'a Raw_deferred.t
val create : ('a Raw_ivar.t -> unit) -> 'a Raw_deferred.t
val peek : 'a Raw_deferred.t -> 'a option
val is_determined : 'a Raw_deferred.t -> bool
val return : 'a -> 'a Raw_deferred.t
val upon : 'a Raw_deferred.t -> ('a -> unit) -> unit
val bind :
'a Raw_deferred.t -> ('a -> 'b Raw_deferred.t) -> 'b Raw_deferred.t
module Handler :
sig
type 'a t
val sexp_of_t :
('a -> Sexplib.Sexp.t) -> 'a Raw_deferred.Handler.t -> Sexplib.Sexp.t
end
val add_handler :
'a Raw_deferred.t ->
('a -> unit) -> Execution_context.t -> 'a Raw_deferred.Handler.t
val remove_handler : 'a Raw_deferred.t -> 'a Raw_deferred.Handler.t -> unit
val sexp_of_t :
('a -> Sexplib.Sexp.t) -> 'a Raw_deferred.t -> Sexplib.Sexp.t
end