Abstract
Software contracts empower programmers to describe functional properties of components. When it comes to constraining effects, though, the literature offers only one-off solutions for various effects. It lacks a universal principle. This paper presents the design of an effectful contract system in the context of effect handlers. A key metatheorem shows that contracts cannot unduly interfere with a program's execution. An implementation of this design, along with an evaluation of its generality, demonstrates that the theory can guide practice.
Original language | English (US) |
---|---|
Article number | 88 |
Journal | Proceedings of the ACM on Programming Languages |
Volume | 8 |
Issue number | POPL |
DOIs | |
State | Published - Jan 5 2024 |
Keywords
- effect handlers
- software contracts
ASJC Scopus subject areas
- Software
- Safety, Risk, Reliability and Quality