Higher-order Programming with Effects and Handlers — without First-Class Functions
Effect handlers have recently gained popularity amongst programming language researchers. However, existing type- and effect systems often complicate the language and potentially hinder a more wide-spread adoption.
In this talk, we present the language Effekt with the goal to close the gap between research languages with sophisticated effect systems and languages for working programmers. The design of Effekt revolves around a radically different view of effects and effect types. Traditionally, effect types express which side effects a computation might have. In Effekt, effect types express which capabilities a computation requires from its context.
This approach has a number of interesting consequences. To guarantee effect safety, we separate functions and values and treat all functions as second-class. While Effekt supports higher-order functions, functions cannot be returned or stored in data structures. This leads to a lightweight effect system without parametric effect polymorphism. We argue the resulting system is significantly easier to understand, while offering the usual safety guarantees and reasoning with effect parametricity.
Sun 23 AugDisplayed time zone: Eastern Time (US & Canada) change
12:00 - 14:00
|Higher-order Programming with Effects and Handlers — without First-Class Functions|
Jonathan Immanuel Brachthäuser University of Tübingen, Germany, Philipp Schuster University of Tübingen, Germany
|Towards Highly Symmetric Effects and Coeffects and a Systematic Separation between the Extra- and Intra-Logical|
Ingo Skupin University of Tübingen, Julian Jabs University of Tübingen, David Binder University of TübingenFile Attached