arrow-mtl / arrow.mtl.extensions / EitherTMonad

EitherTMonad

@extension interface EitherTMonad<F, L> : Monad<EitherTPartialOf<F, L>>, EitherTApplicative<F, L>

Functions

AF open fun AF(): Applicative<F>
ap open fun <A, B> EitherTOf<F, L, A>.ap(ff: EitherTOf<F, L, (A) -> B>): EitherT<F, L, B>
flatMap open fun <A, B> EitherTOf<F, L, A>.flatMap(f: (A) -> EitherTOf<F, L, B>): EitherT<F, L, B>
lazyAp open fun <A, B> Kind<EitherTPartialOf<F, L>, A>.lazyAp(ff: () -> Kind<EitherTPartialOf<F, L>, (A) -> B>): Kind<EitherTPartialOf<F, L>, B>
map open fun <A, B> EitherTOf<F, L, A>.map(f: (A) -> B): EitherT<F, L, B>
MF abstract fun MF(): Monad<F>
tailRecM open fun <A, B> tailRecM(a: A, f: (A) -> EitherTOf<F, L, Either<A, B>>): EitherT<F, L, B>

Inheritors

EitherTMonadError interface EitherTMonadError<F, L, E> : MonadError<EitherTPartialOf<F, L>, E>, EitherTApplicativeError<F, L, E>, EitherTMonad<F, L>

Do you like Arrow?

Arrow Org
<