case class Continuation[R, A, B](functions: Vector[(Any) => Eff[R, Any]], onNone: Last[R] = Last.none[R]) extends (A) => Eff[R, B] with Product with Serializable
Sequence of monadic functions from A to B: A => Eff[B]
Internally it is represented as a Vector of functions:
A => Eff[R, X1]; X1 => Eff[R, X2]; X2 => Eff[R, X3]; ...; X3 => Eff[R, B]
An alternate unit value can also be set on this function in case the argument A is not available. This value can be set by an effect to do some cleanup if it doesn't even get the chance to add its own effect. See SafeEffect.bracket
- Source
- Continuation.scala
- Alphabetic
- By Inheritance
- Continuation
- Serializable
- Product
- Equals
- Function1
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def andThen[A](g: (Eff[R, B]) => A): (A) => A
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- def append[C](f: (B) => Eff[R, C]): Continuation[R, A, C]
append a new monadic function to this list of functions such that
append a new monadic function to this list of functions such that
Arrs[R, A, B] => (B => Eff[R, C]) => Arrs[R, A, C]
- def apply(a: A): Eff[R, B]
execute this monadic function
execute this monadic function
This method is stack-safe
- Definition Classes
- Continuation → Function1
- def applyEval(a: A): Eff[R, B]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def compose[A](g: (A) => A): (A) => Eff[R, B]
- Definition Classes
- Function1
- Annotations
- @unspecialized()
- def contraFlatMap[C](f: (C) => Eff[R, A]): Continuation[R, C, B]
- def contramap[C](f: (C) => A): Continuation[R, C, B]
- def dimapEff[C, D](f: (C) => A)(g: (Eff[R, B]) => Eff[R, D]): Continuation[R, C, D]
adapt the input and output of an Arrs function
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- val functions: Vector[(Any) => Eff[R, Any]]
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def interpret[U, C](map: (Eff[R, B]) => Eff[U, C])(mapOnNone: (Last[R]) => Last[U]): Continuation[U, A, C]
create an Arrs function from the result of another Arrs function
- def interpretEff[U, C](map: (Eff[R, B]) => Eff[U, C])(mapOnNone: (Eff[R, Unit]) => Eff[U, Unit]): Continuation[U, A, C]
create an Arrs function from the result of another Arrs function
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def map[C](f: (B) => C): Continuation[R, A, C]
map the last value
- def mapLast[C](f: (Eff[R, B]) => Eff[R, C]): Continuation[R, A, C]
map the last returned effect
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- val onNone: Last[R]
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def runOnNone: Eff[R, Unit]
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- Function1 → AnyRef → Any
- def transform[U1, U2, M[_], N[_]](t: ~>[M, N])(implicit m: Aux[M, R, U1], n: Aux[N, R, U2], into: IntoPoly[U1, U2]): Continuation[R, A, B]
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()