Programming Languages and Software Technology

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.