CpsEffectMonad

cps.CpsEffectMonad
See theCpsEffectMonad companion object
trait CpsEffectMonad[F[_]] extends CpsMonad[F]

Marker trait, which mark effect monad, where actual evaluation of expression happens after building a monad, during effect evaluation stage.

evaluation of expression inside async block always delayed.

Attributes

Companion
object
Source
CpsMonad.scala
Graph
Supertypes
trait CpsMonad[F]
class Object
trait Matchable
class Any
Known subtypes

Members list

Type members

Inherited types

type WF[X] = F[X]

Attributes

Inherited from:
CpsMonad
Source
CpsMonad.scala

Inherited and Abstract types

Attributes

Inherited from:
CpsMonad
Source
CpsMonad.scala

Value members

Concrete methods

def delay[T](x: => T): F[T]

For effect monads it is usually the same, as pure, but unlike pure, argument of evaluation is lazy.

For effect monads it is usually the same, as pure, but unlike pure, argument of evaluation is lazy.

Note, that delay is close to original return in haskell with lazy evaluation semantics. So, for effect monads, representing pure as eager function is a simplification of semantics, real binding to monads in math sence, should be with delay instead pure

Attributes

Source
CpsMonad.scala
def delayedUnit: F[Unit]

Delayed evaluation of unit. If you want to override this for you monad, you should overrid delayed to.

Delayed evaluation of unit. If you want to override this for you monad, you should overrid delayed to.

Attributes

Source
CpsMonad.scala
def flatDelay[T](x: => F[T]): F[T]

shortcat for delayed evaluation of effect.

shortcat for delayed evaluation of effect.

Attributes

Source
CpsMonad.scala
override def flatWrap[T](op: => F[T]): F[T]

Wrap and flatten of monadic expression..

Wrap and flatten of monadic expression..

Attributes

Definition Classes
Source
CpsMonad.scala
override def wrap[T](op: => T): F[T]

synonim for delay

synonim for delay

Attributes

Definition Classes
Source
CpsMonad.scala

Inherited methods

def flatten[T](ffa: F[F[T]]): F[T]

Attributes

Inherited from:
CpsMonad
Source
CpsMonad.scala

Inherited and Abstract methods

def apply[T](op: Context => F[T]): F[T]

run op in the context environment.

run op in the context environment.

Attributes

Inherited from:
CpsMonad
Source
CpsMonad.scala
def flatMap[A, B](fa: F[A])(f: A => F[B]): F[B]

bind combinator, which compose f over fa

bind combinator, which compose f over fa

Attributes

Inherited from:
CpsMonad
Source
CpsMonad.scala
def map[A, B](fa: F[A])(f: A => B): F[B]

map a function f over fa

map a function f over fa

Attributes

Inherited from:
CpsMonad
Source
CpsMonad.scala
def pure[T](t: T): F[T]

Pure - wrap value t inside monad.

Pure - wrap value t inside monad.

Note, that pure use eager evaluation, which is different from Haskell.

Attributes

Inherited from:
CpsMonad
Source
CpsMonad.scala