Do Notation
Do notation makes working with actions and other “monad” types more convenient.
Do-notation contains semicolon-separated do-lines inside do.N
… end
, where N
is a namespace.
.N
may be omitted, in which case Action.
is the namespace.
N
must be a namespace with these names defined: map
, pure
, ap
, liftA2
, **
, >>
, >>=
.
All of these names will be aliased from N
into the current namespace.
Do-lines are expressions or of the form <pattern> <- <expression>
.
The last line must be an expression.
do.N expr; exprs... end
is the same asexpr >>.N do.N exprs... end
do.N pat <- expr; exprs... end
is the same asexpr >>=.N fn pat => do.N exprs... end
do.N expr end
is the same asexpr
Appropriate namespaces for do notation:
Maybe.
List.
Function.
Either.
Action.
(the default if.N
is omitted)