Package com.jnape.palatable.lambda.monad
-
Interface Summary Interface Description Monad<A,M extends Monad<?,M>> Monads areApplicative
functors that support a flattening operation to unwrapM<M<A>> -> M<A>
.MonadBase<M extends MonadRec<?,M>,A,MB extends MonadBase<?,?,MB>> MonadError<E,A,M extends MonadError<E,?,M>> An interface formonads
that can be interrupted with some type of error.MonadReader<R,A,MR extends MonadReader<R,?,MR>> A monad that is capable of reading an environmentR
and producing a lifted valueA
.MonadRec<A,M extends MonadRec<?,M>> A class ofmonads
that offer a stack-safe interface for performing arbitrarily manyflatmap-like
operations viaMonadRec.trampolineM(Fn1)
.MonadWriter<W,A,MW extends MonadWriter<W,?,MW>> AMonad
that is capable of writing and accumulating state alongside a value, but is not necessarily capable of simultaneously accessing the state and the value.SafeT.Body.Suspended.Φ<M extends MonadRec<?,M>,B,R> -
Class Summary Class Description SafeT<M extends MonadRec<?,M>,A> A stack-safemonad transformer
that can safely interpret deeply nested left- or right-associated binds for anyMonadRec
.SafeT.Body<M extends MonadRec<?,M>,A> SafeT.Body.Done<M extends MonadRec<?,M>,A> SafeT.Body.More<M extends MonadRec<?,M>,A> SafeT.Body.Suspended<M extends MonadRec<?,M>,A,B>