|
|
|
|
|
by noelwelsh
19 days ago
|
|
You can precisely define any particular model, but not all work in the area shares the same model. I think you know about the capability-passing model, which is quite different to the algebraic effects (e.g. row types) models. The general ideas are: * effects are handled by handlers (called capabilities in the capability-passing model) * function signatures describe the effects that are used * effectful code is written in direct style, not monadic style |
|
> effects are handled by handlers
OK, and in the general case a handler allows its body to "perform" an action, and when the action is performed it has the ability to "respond" to it in (in some cases) a very flexible way, running it never, or multiple times, or in a modified environment, or possibly even passing it out of the scope of the handler entirely.
> function signatures describe the effects that are used
Would you say this is not possible in an untyped language then?
> effectful code is written in direct style, not monadic style
I don't understand the distinction here