Writer
The Writer monad represents computation that produce a value an
write to a shared state.
§createWriter<M extends Monoid<M>>(mc: MonoidDictionary<M>): WriterFunctions<M> Creates a writer monad from a monoid dictionary.
§tell<A>(w: W): Writer<W, {}>
§listen<A>(w: Writer<W, A>): Writer<W, [A, W]>
§runWriter<W extends Monoid<W>, A>(w: Writer<W, A>): [W, A]