StateEffect

turbolift.effects.StateEffect
See theStateEffect companion object
trait StateEffect[S] extends Effect[StateSignature[S]], StateSignature[S]

Base trait for custom instances of State effect.

case object MyState extends StateEffect[Int]
// optional:
type MyState = MyState.type

Attributes

See also
Companion
object
Graph
Supertypes
trait StateSignature[S]
trait Signature
class Object
trait Matchable
class Any
Show all
Self type

Members list

Type members

Classlikes

object handlers

Predefined handlers for this effect.

Predefined handlers for this effect.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
handlers.type

Inherited types

final override type ThisEffect = Effect.this.type

Attributes

Inherited from:
Effect
type ThisSignature[U] = StateSignature[S] & Signature { type ThisEffect = U; }

API for defining custom effects.

API for defining custom effects.

Attributes

Inherited from:
Effect

Value members

Concrete methods

final override def getModify(f: S => S): Computation[S, this.type]

Attributes

Definition Classes
final override def getModifyEff[U <: StateEffect[S]](f: S => Computation[S, U]): Computation[S, U]

Attributes

Definition Classes
final override def getModifyGet(f: S => S): Computation[(S, S), this.type]

Attributes

Definition Classes
final override def getModifyGetEff[U <: StateEffect[S]](f: S => Computation[S, U]): Computation[(S, S), U]

Attributes

Definition Classes
final override def getUpdate[A](f: S => (A, S)): Computation[(A, S), this.type]

Attributes

Definition Classes
final override def getUpdateEff[A, U <: StateEffect[S]](f: S => Computation[(A, S), U]): Computation[(A, S), U]

Attributes

Definition Classes
final override def getUpdateGet[A](f: S => (A, S)): Computation[(A, S, S), this.type]

Attributes

Definition Classes
final override def getUpdateGetEff[A, U <: StateEffect[S]](f: S => Computation[(A, S), U]): Computation[(A, S, S), U]

Attributes

Definition Classes
final override def gets[A](f: S => A): Computation[A, this.type]

Attributes

Definition Classes
final override def getsEff[A, U <: StateEffect[S]](f: S => Computation[A, U]): Computation[A, U]

Attributes

Definition Classes
def handler(initial: S): Handler[Identity, Tuple2, thiz.type, Any]
Extension method from StateEffect

Alias of the default handler for this effect.

Alias of the default handler for this effect.

Defined as an extension, to allow custom redefinitions without restrictions imposed by overriding

Attributes

final override def localModify[A, U <: StateEffect[S]](f: S => S)(body: Computation[A, U]): Computation[A, U]

Attributes

Definition Classes
final override def localModifyEff[A, U <: StateEffect[S]](f: S => Computation[S, U])(body: Computation[A, U]): Computation[A, U]

Attributes

Definition Classes
final override def localPut[A, U <: StateEffect[S]](s: S)(body: Computation[A, U]): Computation[A, U]

Attributes

Definition Classes
final override def localPutEff[A, U <: StateEffect[S]](s: Computation[S, U])(body: Computation[A, U]): Computation[A, U]

Attributes

Definition Classes
final override def modify(f: S => S): Computation[Unit, this.type]

Attributes

Definition Classes
final override def modifyEff[U <: StateEffect[S]](f: S => Computation[S, U]): Computation[Unit, U]

Attributes

Definition Classes
final override def modifyGet(f: S => S): Computation[S, this.type]

Attributes

Definition Classes
final override def modifyGetEff[U <: StateEffect[S]](f: S => Computation[S, U]): Computation[S, U]

Attributes

Definition Classes
final override def put(s: S): Computation[Unit, this.type]

Attributes

Definition Classes
final override def putEff[U <: StateEffect[S]](s: Computation[S, U]): Computation[Unit, U]

Attributes

Definition Classes
final override def swap(s: S): Computation[S, this.type]

Attributes

Definition Classes
final override def swapEff[U <: StateEffect[S]](s: Computation[S, U]): Computation[S, U]

Attributes

Definition Classes
final override def update[A](f: S => (A, S)): Computation[A, this.type]

Attributes

Definition Classes
final override def updateEff[A, U <: StateEffect[S]](f: S => Computation[(A, S), U]): Computation[A, U]

Attributes

Definition Classes
final override def updateGet[A](f: S => (A, S)): Computation[(A, S), this.type]

Attributes

Definition Classes
final override def updateGetEff[A, U <: StateEffect[S]](f: S => Computation[(A, S), U]): Computation[(A, S), U]

Attributes

Definition Classes

Inherited methods

final def &![Fx2 <: Signature](fx2: Fx2): Combine2[Effect.this.type, fx2.type]

API for defining custom handlers.

API for defining custom handlers.

Combines with another Effect instance, for the purpose of sharing an Interpreter.

Example of application: implement RWS-alike handler for Reader &! Writer &! State composition of effects.

Attributes

Inherited from:
Effect
final inline def perform[A, U <: ThisEffect](inline f: (ThisSignature[U]) => Computation[A, U]): Computation[A, U]

API for defining custom effects.

API for defining custom effects.

Embeds an invocation of this Signature's method into the Computation monad. This provides mechanism for separation between syntax an semantics of effects.

Attributes

Inherited from:
Effect
final def performNoInline[A, U <: ThisEffect](f: (ThisSignature[U]) => Computation[A, U]): Computation[A, U]

API for defining custom effects.

API for defining custom effects.

Attributes

Inherited from:
Effect

Concrete fields

final override val get: Computation[S, StateEffect[S]]

Inherited fields

val impl: Impl[StateEffect[S]]

API for defining custom handlers.

API for defining custom handlers.

Helper object providing type definitions to be used for implementing Interpreters for this effect.

Attributes

Inherited from:
Effect

Exports

Inherited defined exports

final type ThisHandler = [F[_], G[_], N] =>> this.impl.ThisHandler[F, G, N]
Exported from Impl

Attributes

Inherited from:
Effect