Packages

c

org.atnos.eff

ImpureAp

case class ImpureAp[R, X, A](unions: Unions[R, X], continuation: Continuation[R, Vector[Any], A], last: Last[R] = Last.none[R]) extends Eff[R, A] with Product with Serializable

ImpureAp is a list of independent effects and a pure function creating a value with all the resulting values once all effects have been interpreted.

This essentially models a sequence + map operation but it is important to understand that the list of Union objects can represent different effects and be like: Vector[Option[Int], Future[String], Option[Int]].

Interpreting such an Eff value for a given effect (say Option) consists in:

  • grouping all the Option values,
  • sequencing them
  • pass them to a continuation which will apply the 'map' functions when the other effects (Future in the example above) will have been interpreted

VERY IMPORTANT:

  • this object is highly unsafe
  • the size of the list argument to 'map' must always be equal to the number of unions in the Unions object
  • the types of the elements in the list argument to 'map' must be the exact types of each effect in unions.unions
Source
Eff.scala
Linear Supertypes
Serializable, Serializable, Product, Equals, Eff[R, A], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ImpureAp
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. Eff
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ImpureAp(unions: Unions[R, X], continuation: Continuation[R, Vector[Any], A], last: Last[R] = Last.none[R])

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def *>[B](fb: Eff[R, B]): Eff[R, B]
    Definition Classes
    Eff
  4. def <*[B](fb: Eff[R, B]): Eff[R, A]
    Definition Classes
    Eff
  5. def <<[B](fb: Eff[R, B]): Eff[R, A]
    Definition Classes
    Eff
  6. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  7. def >>[B](fb: Eff[R, B]): Eff[R, B]
    Definition Classes
    Eff
  8. def >>=[B](f: (A) ⇒ Eff[R, B]): Eff[R, B]
    Definition Classes
    Eff
  9. def addLast(l: Last[R]): 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

    Definition Classes
    ImpureApEff
  10. 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

    Definition Classes
    Eff
  11. def ap[B](f: Eff[R, (A) ⇒ B]): Eff[R, B]
    Definition Classes
    Eff
  12. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  13. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  14. val continuation: Continuation[R, Vector[Any], A]
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  17. def flatMap[B](f: (A) ⇒ Eff[R, B]): Eff[R, B]
    Definition Classes
    Eff
  18. def flatten[B](implicit ev: <:<[A, Eff[R, B]]): Eff[R, B]
    Definition Classes
    Eff
  19. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  20. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  21. val last: Last[R]
  22. def map[B](f: (A) ⇒ B): Eff[R, B]
    Definition Classes
    Eff
  23. def map2[B, C](fb: Eff[R, B])(f: (A, B) ⇒ C): Eff[R, C]
    Definition Classes
    Eff
  24. def map2Flatten[B, C](fb: Eff[R, B])(f: (A, B) ⇒ Eff[R, C]): Eff[R, C]
    Definition Classes
    Eff
  25. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  26. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  27. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  28. def product[B](fb: Eff[R, B]): Eff[R, (A, B)]
    Definition Classes
    Eff
  29. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  30. def toMonadic: Eff[R, A]
  31. val unions: Unions[R, X]
  32. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  34. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from Eff[R, A]

Inherited from AnyRef

Inherited from Any

Ungrouped