Effekt (Work in Progress)
As opposed to the other members of the Effekt family, Effekt is a new standalone language. It extracts the essence of most of the other embedded language variants in a simple core calculus. The language supports programming with effect handlers by combining the following three more basic language features:
- dynamic binding (with static typing) to model the dynamically scoping of effect handlers
- static capabilities (via second class values) for effect polymorphism
- delimited control (similar to spawn/controller) to allow capturing the delimited continuation
The design of Effekt not only expresses different orthogonal aspects of effect handlers very clearly, but also avoids a host of well-known problems which currently exist in effect-languages.