Flow

sealed trait Flow extends Interpreter

Super trait for Stateless and Stateful interpreters.

trait Signature
class Object
trait Matchable
class Any
class Stateful[S, F]
class Stateful[S, F]
class Stateless[F]
class Stateless[F]

Type members

Types

final override type !@![A, U] = ThisControl[U] => Any { def apply(kk: ThisControl[U]): Trans[LowerMonad, UpperFunctor[A]]; }
type Initial
final override type IntroEffect = Any
type ThisControl[U] >: ThisControlBound[U] <: ThisControlBound[U]
type Trans[_[_], _]

Inherited types

type Result[+A]
Inherited from:
Interpreter

Abstract type that must be used in definitions of effect's operations.

Abstract type that must be used in definitions of effect's operations.

From the perspective of effect's user, ThisEffect is just an alias of this.type. The final-override happens in Effect.

From the perspective of handler, ThisEffect definition is enriched in a way depending on the chosen Interpreter.

Inherited from:
Signature

Alias for Handler, specialized for this interperter.

Alias for Handler, specialized for this interperter.

Inherited from:
Interpreter

Value members

Abstract methods

def onFlatMap[A, B, M[_] : MonadZip](tma: Trans[M, A])(f: A => Trans[M, B]): Trans[M, B]
def onPure[A](a: A): Trans[[X] =>> X, A]
def onZip[A, B, M[_] : MonadZip](tma: Trans[M, A], tmb: Trans[M, B]): Trans[M, (A, B)]