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>
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> : MonadError<EitherTPartialOf<F, L>, L>, EitherTApplicativeError<F, L>, EitherTMonad<F, L>