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