monads.writer

Computations that also return a vector output. Useful for
appending log messages alongside the result of a series of
computations.

eval-writer

exec-writer

return-writer

(return-writer x)

return-writerE

return-writerM

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.