sig
type 'a t = ('a, Execution_context.t) Raw_deferred.t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
type 'a detailed = 'a t
val sexp_of_detailed :
('a -> Sexplib.Sexp.t) -> 'a detailed -> Sexplib.Sexp.t
val create : ('a Ivar.t -> unit) -> 'a t
val upon : 'a t -> ('a -> unit) -> unit
val peek : 'a t -> 'a option
val is_determined : 'a t -> bool
val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t
val ( >>| ) : 'a t -> ('a -> 'b) -> 'b t
module Monad_infix :
sig
val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t
val ( >>| ) : 'a t -> ('a -> 'b) -> 'b t
end
val bind : 'a t -> ('a -> 'b t) -> 'b t
val return : 'a -> 'a t
val map : 'a t -> f:('a -> 'b) -> 'b t
val join : 'a t t -> 'a t
val ignore : 'a t -> unit t
val all_ignore : unit t list -> unit t
module Infix :
sig
val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t
val ( >>| ) : 'a t -> ('a -> 'b) -> 'b t
val ( >>> ) : 'a t -> ('a -> unit) -> unit
end
val unit : unit t
val never : unit -> 'a t
val both : 'a t -> 'b t -> ('a * 'b) t
val all : 'a t list -> 'a list t
val all_unit : unit t list -> unit t
module Array :
sig
type 'a t = 'a array
val fold :
'a t ->
init:'b ->
f:('b -> 'a -> 'b Deferred_intf.Deferred.t) ->
'b Deferred_intf.Deferred.t
val iter :
?how:Deferred_intf.how ->
'a t ->
f:('a -> unit Deferred_intf.Deferred.t) ->
unit Deferred_intf.Deferred.t
val map :
?how:Deferred_intf.how ->
'a t ->
f:('a -> 'b Deferred_intf.Deferred.t) ->
'b t Deferred_intf.Deferred.t
val filter :
?how:Deferred_intf.how ->
'a t ->
f:('a -> bool Deferred_intf.Deferred.t) ->
'a t Deferred_intf.Deferred.t
val filter_map :
?how:Deferred_intf.how ->
'a t ->
f:('a -> 'b option Deferred_intf.Deferred.t) ->
'b t Deferred_intf.Deferred.t
val all :
'a Deferred_intf.Deferred.t t -> 'a t Deferred_intf.Deferred.t
val all_unit :
unit Deferred_intf.Deferred.t t -> unit Deferred_intf.Deferred.t
end
module List :
sig
type 'a t = 'a list
val fold :
'a t ->
init:'b ->
f:('b -> 'a -> 'b Deferred_intf.Deferred.t) ->
'b Deferred_intf.Deferred.t
val iter :
?how:Deferred_intf.how ->
'a t ->
f:('a -> unit Deferred_intf.Deferred.t) ->
unit Deferred_intf.Deferred.t
val map :
?how:Deferred_intf.how ->
'a t ->
f:('a -> 'b Deferred_intf.Deferred.t) ->
'b t Deferred_intf.Deferred.t
val filter :
?how:Deferred_intf.how ->
'a t ->
f:('a -> bool Deferred_intf.Deferred.t) ->
'a t Deferred_intf.Deferred.t
val filter_map :
?how:Deferred_intf.how ->
'a t ->
f:('a -> 'b option Deferred_intf.Deferred.t) ->
'b t Deferred_intf.Deferred.t
val all :
'a Deferred_intf.Deferred.t t -> 'a t Deferred_intf.Deferred.t
val all_unit :
unit Deferred_intf.Deferred.t t -> unit Deferred_intf.Deferred.t
end
module Queue :
sig
type 'a t = 'a Core.Std.Queue.t
val fold :
'a t ->
init:'b ->
f:('b -> 'a -> 'b Deferred_intf.Deferred.t) ->
'b Deferred_intf.Deferred.t
val iter :
?how:Deferred_intf.how ->
'a t ->
f:('a -> unit Deferred_intf.Deferred.t) ->
unit Deferred_intf.Deferred.t
val map :
?how:Deferred_intf.how ->
'a t ->
f:('a -> 'b Deferred_intf.Deferred.t) ->
'b t Deferred_intf.Deferred.t
val filter :
?how:Deferred_intf.how ->
'a t ->
f:('a -> bool Deferred_intf.Deferred.t) ->
'a t Deferred_intf.Deferred.t
val filter_map :
?how:Deferred_intf.how ->
'a t ->
f:('a -> 'b option Deferred_intf.Deferred.t) ->
'b t Deferred_intf.Deferred.t
val all :
'a Deferred_intf.Deferred.t t -> 'a t Deferred_intf.Deferred.t
val all_unit :
unit Deferred_intf.Deferred.t t -> unit Deferred_intf.Deferred.t
end
module Map :
sig
type ('k, 'v) t = ('k, 'v) Core.Std.Map.Poly.t
val filter_mapi :
('k, 'v1) t ->
f:(key:'k -> data:'v1 -> 'v2 option Deferred_intf.Deferred.t) ->
('k, 'v2) t Deferred_intf.Deferred.t
end
val whenever : unit t -> unit
type 'a choice = 'a Deferred.choice
val choice : 'a t -> ('a -> 'b) -> 'b choice
val enabled : 'b choice list -> (unit -> 'b list) t
val choose : 'b choice list -> 'b t
val choose_ident : 'a t list -> 'a t
val repeat_until_finished :
'state ->
('state -> [ `Finished of 'result | `Repeat of 'state ] t) -> 'result t
val debug_space_leaks : int option ref
val ounit_tests : unit -> OUnit.test
end