OptionEagerEffectScope

Constructors

Link copied to clipboard
constructor(cont: EagerEffectScope<None>)

Functions

Link copied to clipboard
open suspend fun <E, A> attempt(f: suspend EagerEffectScope<E>.() -> A): suspend EagerEffectScope<E>.() -> A

Encloses an action for which you want to catch any shift. attempt is used in combination with catch.

Link copied to clipboard
open suspend fun <B> Either<None, B>.bind(): B

Folds Either into EagerEffect, by returning B or a shift with R.

open suspend fun <B> EagerEffect<None, B>.bind(): B

Runs the EagerEffect to finish, returning B or shift in case of R.

open suspend fun <B> EagerEffect<None, B>.bind(): B
suspend fun <B> Option<B>.bind(): B

open suspend fun <B> Option<B>.bind(shift: () -> None): B

Folds Option into EagerEffect, by returning B or a transforming None into R and shifting the result.

open suspend fun <B> Result<B>.bind(transform: (Throwable) -> None): B

Folds Result into EagerEffect, by returning B or a transforming Throwable into R and shifting the result.

Link copied to clipboard
open infix fun <E, A> suspend EagerEffectScope<E>.() -> A.catch(recover: EagerEffectScope<None>.(E) -> A): A

When the EagerEffect has shifted with R it will recover the shifted value to A, and when it ran the computation to completion it will return the value A. catch is used in combination with attempt.

Link copied to clipboard
open suspend fun ensure(condition: Boolean, shift: () -> None)

ensure that condition is true, if it's false it will shift with the provided value R. Monadic version of kotlin.require.

suspend fun ensure(value: Boolean)
Link copied to clipboard
suspend fun <B> OptionEagerEffectScope.ensureNotNull(value: B?): B
Link copied to clipboard
open suspend override fun <B> shift(r: None): B

Short-circuit the EagerEffect computation with value R.