arrow-mtl / arrow.mtl.extensions / WriterTMonad

WriterTMonad

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

Functions

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

Inheritors

WriterTMonadError interface WriterTMonadError<F, W, E> : MonadError<WriterTPartialOf<F, W>, E>, WriterTApplicativeError<F, W, E>, WriterTMonad<F, W>
WriterTMonadFilter interface WriterTMonadFilter<F, W> : MonadFilter<WriterTPartialOf<F, W>>, WriterTMonad<F, W>
WriterTMonadWriter interface WriterTMonadWriter<F, W> : MonadWriter<WriterTPartialOf<F, W>, W>, WriterTMonad<F, W>

Do you like Arrow?

Arrow Org
<