turbolift.interpreter

Members list

Type members

Classlikes

abstract class Continuation[A, B, S, U] extends A => Computation[B, U]

Delimited continuation obtained from Control.capture.

Delimited continuation obtained from Control.capture.

Type parameters

A

input

B

output

S

local state

U

effect set

Attributes

Supertypes
trait A => Computation[B, U]
class Object
trait Matchable
class Any
final class Control[S, Q, F[_], G[_], L, N, M]

Access to delimited continuation.

Access to delimited continuation.

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 Control's operations to implement their own operations.

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

See also another primitive effect: Local.

Type parameters

F

input, same as From[+_] of the corresponding interpreter.

G

output, same as To[+_] of the corresponding interpreter.

L

effect set, same as Elim of the corresponding interpreter.

M

effect set, same as Ambient of the corresponding interpreter.

N

effect set, same as Intro of the corresponding interpreter.

Q

effect set, same as Unknown of the corresponding interpreter.

S

local state, same as Local of the corresponding interpreter.

Attributes

Supertypes
class Object
trait Matchable
class Any

Attributes

Supertypes
class Object
trait Matchable
class Any
sealed trait Interpreter extends Signature

Super trait for any user-defined Interpreter.

Super trait for any user-defined Interpreter.

  1. Interpreters are not meant to be created directly. Instead, one of abstract interpreters, provided by Effect, should be inherited:
  1. Interpreters are not meant to be used directly. Instead, a Handler should be created from the interpreter, by calling toHandler method on it.

Attributes

Companion
object
Supertypes
trait Signature
class Object
trait Matchable
class Any
Known subtypes
class Proxy[Fx]
class Proxy[Fx]
class Stateful[F, G, Fx]
class Stateful[F, G, Fx]
class Stateless[F, G, Fx]
class Stateless[F, G, Fx]
Show all
object Interpreter

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
final class Local[S, V]

Local state of effect.

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

Supertypes
class Object
trait Matchable
class Any
object Mixins

Mixin traits for Interpreter.

Mixin traits for Interpreter.

User-defined interpreters choose to inherit from one of those mixins, depending on their intended approach to parallellism.

No need to import these definitions, because turbolift.Effect trait exports them for convenience.

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Mixins.type
object Prompt

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Prompt.type
sealed abstract class Void

Degenerate state of stateless Interpreter.

Degenerate state of stateless Interpreter.

Like Unit, but takes 0 bytes of storage in fiber's state. Do not use explicitly.

Attributes

Companion
object
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Void
case object Void extends Void

Singleton instance of Void.

Singleton instance of Void.

Attributes

Companion
class
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class Void
class Object
trait Matchable
class Any
Show all
Self type
Void.type

Types

type Prompt = Untyped