POPL 2024
Sun 14 - Sat 20 January 2024 London, United Kingdom
Wed 17 Jan 2024 13:20 - 13:40 at Kelvin Lecture - Effect Handlers Chair(s): Cătălin Hriţcu

We propose a novel approach to soundly combining linear types with multi-shot effect handlers. Linear type systems statically ensure that resources such as file handles and communication channels are used exactly once. Effect handlers provide a rich modular programming abstraction for implementing features ranging from exceptions to concurrency to backtracking. Whereas conventional linear type systems bake in the assumption that continuations are invoked exactly once, effect handlers allow continuations to be discarded (e.g. for exceptions) or invoked more than once (e.g. for backtracking). This mismatch leads to soundness bugs in existing systems such as the programming language Links, which combines linearity (for session types) with effect handlers. We introduce control flow linearity as a means to ensure that continuations are used in accordance with the linearity of any resources they capture, ruling out such soundness bugs.

We formalise the notion of control-flow linearity in a System F-style core calculus $\mathrm{F}^\circ_\mathrm{eff}$ equipped with linear types, an effect type system, and effect handlers. We define a linearity-aware semantics in order to formally prove that $\mathrm{F}^\circ_\mathrm{eff}$ preserves the integrity of linear values in the sense that no linear value is discarded or duplicated. In order to show that control-flow linearity can be made practical, we adapt Links based on the design of $\mathrm{F}^\circ_\mathrm{eff}$, in doing so fixing a long-standing soundness bug.

Finally, to better expose the potential of control-flow linearity, we define an ML-style core calculus $\mathrm{Q}^\circ_\mathrm{eff}$ based on qualified types, which requires no programmer provided annotations, and instead relies entirely on type inference to infer control-flow linearity. Both linearity and effects are captured by qualified types. $\mathrm{Q}^\circ_\mathrm{eff}$ overcomes a number of practical limitations of $\mathrm{F}^\circ_\mathrm{eff}$, supporting abstraction over linearity, linearity dependencies between type variables, and a much more fine-grained notion of control-flow linearity.

Wed 17 Jan

Displayed time zone: London change

13:20 - 14:40
Effect HandlersPOPL at Kelvin Lecture
Chair(s): Cătălin Hriţcu MPI-SP
13:20
20m
Talk
Soundly Handling LinearityDistinguished Paper
POPL
Wenhao Tang University of Edinburgh, Daniel Hillerström Huawei Zurich Research Center, Sam Lindley University of Edinburgh, J. Garrett Morris University of Iowa
DOI Pre-print
13:40
20m
Talk
Answer Refinement Modification: Refinement Type System for Algebraic Effects and Handlers
POPL
Fuga Kawamata Waseda University, Hiroshi Unno University of Tsukuba, Taro Sekiyama National Institute of Informatics, Tachio Terauchi Waseda University
14:00
20m
Talk
Effectful Software Contracts
POPL
Cameron Moy Northeastern University, Christos Dimoulas Northwestern University, Matthias Felleisen Northeastern University
14:20
20m
Talk
Algebraic Effects Meet Hoare Logic in Cubical Agda
POPL
Donnacha Oisín Kidney Imperial College London, Zhixuan Yang Imperial College London, Nicolas Wu Imperial College London
Pre-print