include Core.Monad.S with type a t := a t
include Base__.Monad_intf.S_without_syntax with type a t := a t
type 'a t
A monad is an abstraction of the concept of sequencing of computations. A value of type 'a monad represents a computation that returns a value of type 'a.
include Base__.Monad_intf.Infix with type a t := a t
module Monad_infix : Base__.Monad_intf.Infix with type a t := a t
val exn : (Core.Exn.t ‑> _ t) Async_smtp__.With_info.with_reject
val error : (Core.Error.t ‑> _ t) Async_smtp__.With_info.with_reject
val error_string : (string ‑> _ t) Async_smtp__.With_info.with_reject
val errorf : (('a, unit, string, _ t) Core.format4 ‑> 'a) Async_smtp__.With_info.with_reject
val reject : (Async_smtp.Smtp_reply.t ‑> _ t) Async_smtp__.With_info.with_here
val tag : tag:string ‑> ('a t ‑> 'a t) Async_smtp__.With_info.with_maybe_here
val tag' : ?tag:string ‑> ('a t ‑> 'a t) Async_smtp__.With_info.with_maybe_here
val ok : 'a Async.Deferred.t ‑> 'a t
Helpers 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_tag
val return_or_error : ('a Core.Or_error.t ‑> 'a t) Async_smtp__.With_info.with_tag
val try_with : ((unit ‑> 'a Async.Deferred.t) ‑> 'a t) Async_smtp__.With_info.with_tag
Capture any raised exceptions as Error
s.
val try_with_join : ((unit ‑> 'a t) ‑> 'a t) Async_smtp__.With_info.with_tag
val try_with_or_error : ((unit ‑> 'a Async.Deferred.Or_error.t) ‑> 'a t) Async_smtp__.With_info.with_tag