Logo image
Backwards-Compatible Row-Based Exceptions in ML
Conference proceeding   Open access

Backwards-Compatible Row-Based Exceptions in ML

Simcha van Collem, Paulo Emilio De Vilhena and Robbert Krebbers
Proceedings of ACM on programming languages, Vol.10(PLDI), pp.1407-1431
ACM SIGPLAN Conference on Programming Language Design and Implementation ( Boulder, Colorado, United States, 15/06/2026–19/06/2026)
08/06/2026

Abstract

Concurrency Control primitives Separation logic Theory of computation
We introduce a type system that provides strong types for exception tracking in ML-style languages. Our type system employs a rich notion of row polymorphism and subtyping to ensure backwards compatibility, making sure that code without exception tracking continues to work and can be generalized gracefully to support exception tracking. We study the safety and abstraction guarantees of our type system, in particular the role of local exceptions for data abstraction. We formulate these claims using binary logical relations in a novel relational separation logic for exceptions, an independent contribution of this paper. We support a realistic subset of features from ML-style languages, such as extensible variant types, local exceptions, and concurrency. We exercise our type system and logic on a number of challenging examples taken from the OCaml standard library, from one of Jane Street's OCaml libraries, and from Filinski's PhD thesis. All our results are mechanized in the Rocq prover using Iris.
url
https://doi.org/10.1145/3808303View
Published (Version of record)

Metrics

1 Record Views

Details

Logo image

Usage Policy