arrow-mtl / arrow.mtl.extensions / OptionTMonad
@extension interface OptionTMonad<F> : Monad<OptionTPartialOf<F>>,
OptionTApplicative
<F>
AF | open fun AF(): Applicative<F> |
ap | open fun <A, B> OptionTOf<F, A>.ap(ff: OptionTOf<F, (A) -> B>): OptionT<F, B> |
flatMap | open fun <A, B> OptionTOf<F, A>.flatMap(f: (A) -> OptionTOf<F, B>): OptionT<F, B> |
map | open fun <A, B> OptionTOf<F, A>.map(f: (A) -> B): OptionT<F, B> |
MF | abstract fun MF(): Monad<F> |
tailRecM | open fun <A, B> tailRecM(a: A, f: (A) -> OptionTOf<F, Either<A, B>>): OptionT<F, B> |
OptionTMonadError | interface OptionTMonadError<F, E> : MonadError<OptionTPartialOf<F>, E>, OptionTMonad <F>, OptionTApplicativeError <F, E> |