Type, Ability, and Effect Systems: Perspectives on Purity, Semantics, and Expressiveness
Yuyan Bao, Tiark Rompf
TL;DR
The paper addresses how to compare purification-focused typing disciplines for effects and capabilities using a semantic notion of purity grounded in contextual equivalence. It introduces a completeness-based expressiveness measure and proves that minimal binary effect and capability systems are incomparable, motivating a synthesis λ_{ae} that unifies types, abilities, and effects. A binary logical-relations framework is developed to prove purity-related properties and contextual equivalence across λ_e, λ_a, and λ_{ae}, with mechanized proofs. This semantic foundation enables rigorous comparisons and planning for language design that balances precision and usability in reasoning about effects and resources.
Abstract
Programming benefits from a clear separation between pure, mathematical computation and impure, effectful interaction with the world. Existing approaches to enforce this separation include monads, type-and-effect systems, and capability systems. All share a tension between precision and usability, and each one has non-obvious strengths and weaknesses. This paper aims to raise the bar in assessing such systems. First, we propose a semantic definition of purity, inspired by contextual equivalence, as a baseline independent of any specific typing discipline. Second, we propose that expressiveness should be measured by the degree of completeness, i.e., how many semantically pure terms can be typed as pure. Using this measure, we focus on minimal meaningful effect and capability systems and show that they are incomparable, i.e., neither subsumes the other in terms of expressiveness. Based on this result, we propose a synthesis and show that type, ability, and effect systems combine their respective strengths while avoiding their weaknesses. As part of our formal model, we provide a logical relation to facilitate proofs of purity and other properties for a variety of effect typing disciplines.
