arrow-mtl / arrow.mtl.extensions / StateTMonad

StateTMonad

@extension interface StateTMonad<F, S> : Monad<StateTPartialOf<F, S>>, StateTApplicative<F, S>

Functions

ap open fun <A, B> StateTOf<F, S, A>.ap(ff: StateTOf<F, S, (A) -> B>): StateT<F, S, B>
flatMap open fun <A, B> StateTOf<F, S, A>.flatMap(f: (A) -> StateTOf<F, S, B>): StateT<F, S, B>
lazyAp open fun <A, B> Kind<StateTPartialOf<F, S>, A>.lazyAp(ff: () -> Kind<StateTPartialOf<F, S>, (A) -> B>): Kind<StateTPartialOf<F, S>, B>
map open fun <A, B> StateTOf<F, S, A>.map(f: (A) -> B): StateT<F, S, B>
MF abstract fun MF(): Monad<F>
tailRecM open fun <A, B> tailRecM(a: A, f: (A) -> StateTOf<F, S, Either<A, B>>): StateT<F, S, B>

Inheritors

StateTMonadCombine interface StateTMonadCombine<F, S> : MonadCombine<StateTPartialOf<F, S>>, StateTMonad<F, S>, StateTAlternative<F, S>
StateTMonadError interface StateTMonadError<F, S, E> : MonadError<StateTPartialOf<F, S>, E>, StateTApplicativeError<F, S, E>, StateTMonad<F, S>
StateTMonadState interface StateTMonadState<F, S> : MonadState<StateTPartialOf<F, S>, S>, StateTMonad<F, S>

Do you like Arrow?

Arrow Org
<