include Core.Monad.S with type a t := a tinclude Base__.Monad_intf.S_without_syntax with type a t := a tinclude Base__.Monad_intf.Infix with type a t := a tmodule Monad_infix : Base__.Monad_intf.Infix with type a t := a tval exn : (Core.Exn.t ‑> _ t) Async_smtp__.With_info.with_rejectval error : (Core.Error.t ‑> _ t) Async_smtp__.With_info.with_rejectval error_string : (string ‑> _ t) Async_smtp__.With_info.with_rejectval errorf : (('a, unit, string, _ t) Core.format4 ‑> 'a) Async_smtp__.With_info.with_rejectval reject : (Async_smtp.Smtp_reply.t ‑> _ t) Async_smtp__.With_info.with_hereval tag : tag:string ‑> ('a t ‑> 'a t) Async_smtp__.With_info.with_maybe_hereval tag' : ?tag:string ‑> ('a t ‑> 'a t) Async_smtp__.With_info.with_maybe_hereval ok : 'a Async.Deferred.t ‑> 'a tHelpers to convert to an 'a t.
Unlike try_with* below, these will not capture raised exceptions.
val of_or_error : ('a Async.Deferred.Or_error.t ‑> 'a t) Async_smtp__.With_info.with_tagval return_or_error : ('a Core.Or_error.t ‑> 'a t) Async_smtp__.With_info.with_tagval try_with : ((unit ‑> 'a Async.Deferred.t) ‑> 'a t) Async_smtp__.With_info.with_tagCapture any raised exceptions as Errors.
val try_with_join : ((unit ‑> 'a t) ‑> 'a t) Async_smtp__.With_info.with_tagval try_with_or_error : ((unit ‑> 'a Async.Deferred.Or_error.t) ‑> 'a t) Async_smtp__.With_info.with_tag