Monad.Lwt_syntax
Syntax module for Lwt. This is intended to be opened locally in functions which use Lwt for control-flow. Within the scope of this module, the code can include binding operators, leading to a let
-style syntax.
See also Lwt
and Lwt
.Syntax
return x
is an Lwt promise that is already resolved to x
. return
is an alias for Lwt
.return.
return_unit
is an Lwt promise that is already resolved to ()
. It is an alias for Lwt.return_unit
.
return_none
is an Lwt promise that is already resolved to None
. It is an alias for Lwt.return_none
.
return_nil
is an Lwt promise that is already resolved to []
. It is an alias for Lwt.return_nil
.
return_true
is an Lwt promise that is already resolved to true
. It is an alias for Lwt.return_true
.
return_false
is an Lwt promise that is already resolved to false
. It is an alias for Lwt.return_false
.
return_some x
is an Lwt promise that is already resolved to Some x
. return_some
is an alias for Lwt.return_some
.
return_ok x
is an Lwt promise that is already resolved to Ok x
. return_ok
is an alias for Lwt.return_ok
.
return_error x
is an Lwt promise that is already resolved to Error x
. return_error
is an alias for Lwt.return_error
.
The following return_ok_*
functions are intended to be used within the scope of Lwt_syntax
when returning results compatible with Lwt_result_syntax
.
return_ok_unit
is an Lwt promise that is already resolved to Ok ()
.
return_ok_true
is an Lwt promise that is already resolved to Ok true
.
return_ok_false
is an Lwt promise that is already resolved to Ok false
.
return_ok_none
is an Lwt promise that is already resolved to Ok None
.
return_ok_nil
is an Lwt promise that is already resolved to Ok []
.
let*
is a binding operator alias for Lwt
.bind and Lwt
.(>>=).
and*
is a binding operator alias for Lwt
.both and Lwt
.(<&>).
let+
is a binding operator alias for Lwt
.map and Lwt
.(>|=).
and+
is a binding operator alias for Lwt
.both and Lwt
.(<&>).
join
is the joining of concurrent unit values (it is Lwt.join
).
all
is the joining of concurrent non-unit values (it is Lwt.all
).