Local

turbolift.interpreter.Local
final class Local[S, V]

Local state of effect.

This is a Primitive Effect, provided for implementing custom effects:

  1. It's accessible only from within custom implementations of Interpreters. Custom effects can invoke Local's operations to implement their own operations.

  2. It does not require a handler. Invoking Local's operations does not manifest as a dependency.

See also another primitive effect: Control.

Type parameters

S

local state

V

effect set

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

def get: Computation[S, V]
inline def getModify(inline f: S => S): Computation[S, V]
inline def getModifyEff[U <: V](inline f: S => Computation[S, U]): Computation[S, U]
inline def getModifyGet(inline f: S => S): Computation[(S, S), V]
inline def getModifyGetEff[U <: V](inline f: S => Computation[S, U]): Computation[(S, S), U]
inline def getUpdate[A](inline f: S => (A, S)): Computation[(A, S), V]
inline def getUpdateEff[A, U <: V](inline f: S => Computation[(A, S), U]): Computation[(A, S), U]
inline def getUpdateGet[A](inline f: S => (A, S)): Computation[(A, S, S), V]
inline def getUpdateGetEff[A, U <: V](inline f: S => Computation[(A, S), U]): Computation[(A, S, S), U]
def gets[A](f: S => A): Computation[A, V]
inline def getsEff[A, U <: V](f: S => Computation[A, U]): Computation[A, U]
inline def modify(inline f: S => S): Computation[Unit, V]
inline def modifyEff[U <: V](inline f: S => Computation[S, U]): Computation[Unit, U]
inline def modifyGet(inline f: S => S): Computation[S, V]
inline def modifyGetEff[U <: V](inline f: S => Computation[S, U]): Computation[S, U]
def put(s2: S): Computation[Unit, V]
inline def putEff[U <: V](ss: Computation[S, U]): Computation[Unit, U]
inline def swap(s2: S): Computation[S, V]
inline def swapEff[U <: V](ss: Computation[S, U]): Computation[S, U]
inline def update[A](inline f: S => (A, S)): Computation[A, V]
inline def updateEff[A, U <: V](inline f: S => Computation[(A, S), U]): Computation[A, U]
inline def updateGet[A](inline f: S => (A, S)): Computation[(A, S), V]
inline def updateGetEff[A, U <: V](inline f: S => Computation[(A, S), U]): Computation[(A, S), U]