monads.writer
Computations that also return a vector output. Useful for
appending log messages alongside the result of a series of
computations.
return-writer
(return-writer x)
tell
(tell s)
Append s to the writer output.
writer->
macro
(writer-> bindings body)
Takes a vector of bindings and a final body. Output will
be appended with each computation.
writer-tuple
(writer-tuple)
(writer-tuple val)
(writer-tuple val output)
Return a writer tuple give no value, a value, or a value
and some output. Serves as a more explicit indication of writer
than a simple vector pair.
writerE->
macro
(writerE-> bindings body)
Like writer-> except the value should be an Either.
Execution will stop when the first [:err ...] value is encountered.
writerM->
macro
(writerM-> bindings body)
Like writer-> except the value should be a Maybe.
Execution will stop when the first nil value is encountered.