arrow-mtl / arrow.mtl.extensions / WriterTMonad

WriterTMonad

@extension interface WriterTMonad<W, F> : Monad<WriterTPartialOf<W, F>>, WriterTApplicative<W, F>

Functions

AF open fun AF(): Applicative<F>
ap open fun <A, B> WriterTOf<W, F, A>.ap(ff: WriterTOf<W, F, (A) -> B>): WriterT<W, F, B>
flatMap open fun <A, B> WriterTOf<W, F, A>.flatMap(f: (A) -> WriterTOf<W, F, B>): WriterT<W, F, B>
map open fun <A, B> WriterTOf<W, F, A>.map(f: (A) -> B): WriterT<W, F, B>
MF abstract fun MF(): Monad<F>
MM abstract fun MM(): Monoid<W>
tailRecM open fun <A, B> tailRecM(a: A, f: (A) -> WriterTOf<W, F, Either<A, B>>): WriterT<W, F, B>

Inheritors

WriterTMonadError interface WriterTMonadError<W, F, E> : MonadError<WriterTPartialOf<W, F>, E>, WriterTApplicativeError<W, F, E>, WriterTMonad<W, F>
WriterTMonadFilter interface WriterTMonadFilter<W, F> : MonadFilter<WriterTPartialOf<W, F>>, WriterTMonad<W, F>
WriterTMonadPlus interface WriterTMonadPlus<W, F> : MonadPlus<WriterTPartialOf<W, F>>, WriterTMonad<W, F>, WriterTAlternative<W, F>
WriterTMonadReader interface WriterTMonadReader<W, F, D> : MonadReader<WriterTPartialOf<W, F>, D>, WriterTMonad<W, F>
WriterTMonadState interface WriterTMonadState<W, F, S> : MonadState<WriterTPartialOf<W, F>, S>, WriterTMonad<W, F>
WriterTMonadWriter interface WriterTMonadWriter<W, F> : MonadWriter<WriterTPartialOf<W, F>, W>, WriterTMonad<W, F>

Do you like Arrow?

Arrow Org
<