`include Core_kernel.Monad.S2 with type ('a, 'b) t = ('a, 'b) Core_kernel.Result.t Async_kernel__.Deferred1.t`
`type ('a, 'b) t``= ('a, 'b) Core_kernel.Result.t Async_kernel__.Deferred1.t```
`include Base__.Monad_intf.Infix2 with type (a, e) t := (a, e) t`
`type ('a, 'e) t`````
`val (>>=) : ('a, 'e) t ‑> ('a ‑> ('b, 'e) t) ‑> ('b, 'e) t`
`val (>>|) : ('a, 'e) t ‑> ('a ‑> 'b) ‑> ('b, 'e) t`
`include Base__.Monad_intf.Syntax2 with type (a, e) t := (a, e) t`
`type ('a, 'e) t`````
`module Let_syntax : sig ... end`
`module Monad_infix : Base__.Monad_intf.Infix2 with type (a, e) t := (a, e) t`
`val bind : ('a, 'e) t ‑> f:('a ‑> ('b, 'e) t) ‑> ('b, 'e) t`
`val return : 'a ‑> ('a, _) t`
`val map : ('a, 'e) t ‑> f:('a ‑> 'b) ‑> ('b, 'e) t`
`val join : (('a, 'e) t, 'e) t ‑> ('a, 'e) t`
`val ignore_m : (_, 'e) t ‑> (unit, 'e) t`
`val all : ('a, 'e) t list ‑> ('a list, 'e) t`
`val all_unit : (unit, 'e) t list ‑> (unit, 'e) t`
`val all_ignore : (unit, 'e) t list ‑> (unit, 'e) t`

- Deprecated [since 2018-02] Use [all_unit]

`val ignore : (_, 'err) t ‑> (unit, 'err) t`
`val map_error : ('ok, 'error1) t ‑> f:('error1 ‑> 'error2) ‑> ('ok, 'error2) t`
`val combine : ('ok1, 'err) t ‑> ('ok2, 'err) t ‑> ok:('ok1 ‑> 'ok2 ‑> 'ok3) ‑> err:('err ‑> 'err ‑> 'err) ‑> ('ok3, 'err) t`

`combine` waits on both inputs and combines their results using `Result.combine`.