Super trait for any user-defined Interpreter.
There are 2 kinds of interpreters:
- Proxy interpreters - The easy way: handle this effect in terms of other, preexisting effects (a.k.a. reinterpretation).
- Flow interpreters - The hard way: implement a monad transformer for this effect. Take full Control.
Interpreters aren't directly usable. A Handler must be created from the interpreter, by calling toHandler
method.
- Companion:
- object
Type members
Inherited types
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, !@!
is just an alias of !!. The final-override happens in Effect.
From the perspective of handler, !@!
definition is enriched in a way depending on the chosen Interpreter.
- Inherited from:
- Signature
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