sig   type 'a deferred   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 -> 'Pvem.DEFERRED_RESULT.deferred) -> ('a, exn) t   val wrap_deferred :     on_exn:(exn -> 'a) ->     (unit -> 'Pvem.DEFERRED_RESULT.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