functor (Deferred : DEFERRED) ->
sig
type 'a deferred = 'a Deferred.t
type ('a, 'b) t = ('a, 'b) Result.t deferred
val return : 'a -> ('a, 'b) t
val bind : ('a, 'b) t -> ('a -> ('c, 'b) t) -> ('c, 'b) t
val ( >>= ) : ('a, 'b) t -> ('a -> ('c, 'b) t) -> ('c, 'b) t
val fail : 'b -> ('a, 'b) t
val map : ('a, 'b) t -> ('a -> 'c) -> ('c, 'b) t
val ( >>| ) : ('a, 'b) t -> ('a -> 'c) -> ('c, 'b) t
val destruct :
('a, 'b) t ->
([> `Error of 'b | `Ok of 'a ] -> ('c, 'd) t) -> ('c, 'd) t
val ( >>< ) :
('a, 'b) t ->
([> `Error of 'b | `Ok of 'a ] -> ('c, 'd) t) -> ('c, 'd) t
val of_result : ('a, 'b) Result.t -> ('a, 'b) t
val catch_deferred : (unit -> 'a deferred) -> ('a, exn) t
val wrap_deferred :
on_exn:(exn -> 'a) -> (unit -> 'b deferred) -> ('b, 'a) t
val map_option : 'a option -> f:('a -> ('r, 'b) t) -> ('r option, 'b) t
val some : or_fail:'error -> 'a option -> ('a, 'error) t
end