package octez-libs
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=55ea1fb8bb3273a7fc270ca8f650d45c56449665619482aad9bc12f3ea736b7e
sha512=fec850fc2d17d7490bbabd5147d62aad13b3aaed8774270f8a38ab419670ed03e0fd30cf8642a97984eca5c2446726fe590ad99c015f7ec50919dc7652f25053
doc/octez-libs.lwt-result-stdlib/Tezos_lwt_result_stdlib/Lwtreslib/Traced/Monad/Result_syntax/index.html
Module Monad.Result_syntax
Syntax module for Result. This is intended to be opened locally in functions which use result
for control-flow. Within the scope of this module, the code can include binding operators, leading to a let
-style syntax.
See also Result
val return : 'a -> ('a, 'e) result
return x
is Ok x
.
val return_unit : (unit, 'e) result
return_unit
is Ok ()
.
val return_none : ('a option, 'e) result
return_none
is Ok None
.
val return_some : 'a -> ('a option, 'e) result
return_some x
is Ok (Some x)
.
val return_nil : ('a list, 'e) result
return_nil
is Ok []
.
val return_true : (bool, 'e) result
return_true
is Ok true
.
val return_false : (bool, 'e) result
return_false
is Ok false
.
Note that we do not provide return_ok
nor return_error
. Both of these functions are possible but somewhat confusing and rarely useful in practice. If you need to carry result
s within a Result-monad computation (yielding to values of the type (('a, 'e) result, 'e) result
), you need to do so by hand: return (Ok …)
and return (Error …)
.
val fail : 'e -> ('a, 'e) result
fail e
is Error e
. It is also an alias for error
.
let*
is a binding operator alias for Result.bind
and >>?
.
let+
is a binding operator alias for Result.map
and >|?
.
Note that we do not provide and*
nor and+
. Both of these are possible but their type is unsatisfying because the errors do not compose well. You can use both
(below) if need be.
join
is the joining of success/failure unit values.
all
is the joining of success/failure non-unit values.