functor (Deferred : DEFERRED->   sig     type 'a deferred = 'Deferred.t     type ('a, 'b) t = ('a, 'b) Result.t deferred     val return : '-> ('a, 'b) t     val bind : ('a, 'b) t -> ('-> ('c, 'b) t) -> ('c, 'b) t     val ( >>= ) : ('a, 'b) t -> ('-> ('c, 'b) t) -> ('c, 'b) t     val fail : '-> ('a, 'b) t     val map : ('a, 'b) t -> ('-> 'c) -> ('c, 'b) t     val ( >>| ) : ('a, 'b) t -> ('-> 'c) -> ('c, 'b) t     val destruct :       ('a, 'b) t ->       ([> `Error of '| `Ok of 'a ] -> ('c, 'd) t) -> ('c, 'd) t     val ( >>< ) :       ('a, 'b) t ->       ([> `Error of '| `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:('-> ('r, 'b) t) -> ('r option, 'b) t     val some : or_fail:'error -> 'a option -> ('a, 'error) t   end