WriterEffect

turbolift.effects.WriterEffect
trait WriterEffect[W] extends WriterEffectExt[W, W]

Specialized WriterEffectExt, where W and W1 are the same (e.g. a monoid).

Attributes

Graph
Supertypes
trait WriterEffectExt[W, W]
trait WriterSignature[W, W]
trait Signature
trait Effect[WriterSignature[W, W]]
class Object
trait Matchable
class Any
Show all

Members list

Type members

Inherited classlikes

object handlers

Predefined handlers for this effect.

Predefined handlers for this effect.

Attributes

Inherited from:
WriterEffectExt
Supertypes
class Object
trait Matchable
class Any

Inherited types

final override type ThisEffect = Effect.this.type

Attributes

Inherited from:
Effect
type ThisSignature[U] = WriterSignature[W, W] & Signature { type ThisEffect = U; }

API for defining custom effects.

API for defining custom effects.

Attributes

Inherited from:
Effect

Value members

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 override def censor[A, U <: WriterEffect[W]](f: W => W)(body: Computation[A, U]): Computation[A, U]

Attributes

Definition Classes
Inherited from:
WriterEffectExt
final override def listen[A, U <: WriterEffect[W]](body: Computation[A, U]): Computation[(A, W), U]

Attributes

Definition Classes
Inherited from:
WriterEffectExt
final override def mute[A, U <: WriterEffect[W]](body: Computation[A, U]): Computation[A, U]

Attributes

Definition Classes
Inherited from:
WriterEffectExt
final override def pass[A, U <: WriterEffect[W]](body: Computation[(A, W => W), U]): Computation[A, U]

Attributes

Definition Classes
Inherited from:
WriterEffectExt
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
final def tell[K, V1](k: K, v: V1)(using ev: (K, V1) <:< W): Computation[Unit, WriterEffectExt.this.type]

Attributes

Inherited from:
WriterEffectExt
final override def tell(w: W): Computation[Unit, WriterEffectExt.this.type]

Attributes

Definition Classes
Inherited from:
WriterEffectExt
final override def tells(w: W): Computation[Unit, WriterEffectExt.this.type]

Attributes

Definition Classes
Inherited from:
WriterEffectExt

Inherited fields

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