Impure

case class Impure[R, X, A](union: Effect[R, X], continuation: Continuation[R, X, A], last: Last[R]) extends Eff[R, A]

Impure is an effect (encoded as one possibility among other effects, a Union) and a continuation providing the next Eff value.

This essentially models a flatMap operation with the current effect and the monadic function to apply to a value once the effect is interpreted

One effect can always be executed last, just for side-effects

Source:
Eff.scala
trait Serializable
trait Product
trait Equals
trait Eff[R, A]
class Object
trait Matchable
class Any

Value members

Concrete methods

def addLast(l: Last[R]): Eff[R, A]
Source:
Eff.scala

Inherited methods

def *>[B](fb: Eff[R, B]): Eff[R, B]
Inherited from:
Eff
Source:
Eff.scala
def <*[B](fb: Eff[R, B]): Eff[R, A]
Inherited from:
Eff
Source:
Eff.scala
def <<[B](fb: Eff[R, B]): Eff[R, A]
Inherited from:
Eff
Source:
Eff.scala
def >>[B](fb: Eff[R, B]): Eff[R, B]
Inherited from:
Eff
Source:
Eff.scala
def >>=[B](f: A => Eff[R, B]): Eff[R, B]
Inherited from:
Eff
Source:
Eff.scala
def addLast(l: => Eff[R, Unit]): Eff[R, A]

add one last action to be executed after any computation chained to this Eff value

add one last action to be executed after any computation chained to this Eff value

Inherited from:
Eff
Source:
Eff.scala
def ap[B](f: Eff[R, A => B]): Eff[R, B]
Inherited from:
Eff
Source:
Eff.scala
def flatMap[B](f: A => Eff[R, B]): Eff[R, B]
Inherited from:
Eff
Source:
Eff.scala
def flatten[B](implicit ev: A <:< Eff[R, B]): Eff[R, B]
Inherited from:
Eff
Source:
Eff.scala
def map[B](f: A => B): Eff[R, B]
Inherited from:
Eff
Source:
Eff.scala
def map2[B, C](fb: Eff[R, B])(f: (A, B) => C): Eff[R, C]
Inherited from:
Eff
Source:
Eff.scala
def map2Flatten[B, C](fb: Eff[R, B])(f: (A, B) => Eff[R, C]): Eff[R, C]
Inherited from:
Eff
Source:
Eff.scala
def product[B](fb: Eff[R, B]): Eff[R, (A, B)]
Inherited from:
Eff
Source:
Eff.scala
Inherited from:
Product