nee-core / dev.neeffect.nee

Package dev.neeffect.nee

Types

ANee

Nee returning Any error.

typealias ANee<R, P, A> = Nee<R, Any, P, A>

Effect

An effect, or maybe aspect :-)

interface Effect<R, E>

Effects

class Effects<R1, R2 : R1, E1, E2> : Effect<R2, Either<E1, E2>>

HandleErrorEffect

class HandleErrorEffect<R, E, E1> : Effect<R, E1>

Nee

Nee monad.

sealed class Nee<R, E, P, out A>

NoEffect

class NoEffect<R, E> : Effect<R, E>

UANee

Very Generic Nee monad.

typealias UANee<R, A> = Nee<R, Any, Unit, A>

UNee

Nee on function without param.

typealias UNee<R, E, A> = Nee<R, E, Unit, A>

Functions

andThen

Composition of effects.

fun <R1, E1, R2 : R1, E2> Effect<R2, E2>.andThen(otherEffect: Effect<R1, E1>): Effect<R2, Either<E1, E2>>

anyError

fun <R, E> Effect<R, E>.anyError(): Effect<R, Any>

then

infix fun <R1, E1, R2 : R1, E2> Effect<R2, E2>.then(otherEffect: Effect<R1, E1>): Effect<R2, Either<E1, E2>>