Set-theoretic type connectives with their native support for union, intersection, and negation have the potential to capture the idioms of dynamically typed languages like Erlang. We investigate whether this theoretical expressiveness translates into practice: does the resulting type solver remain tractable on real-world code? Can the type system reflect the programmer’s intention even though no principal types exist? And does it actually detect or avoid errors in real codebases? This paper reports on our experience on applying Etylizer, a set-theoretic type checker for Erlang, to its own implementation. We test whether the type system can express the patterns arising in a non-trivial Erlang codebase. In addition, we present a systematic comparison of design tradeoffs between Etylizer, eqWAlizer, and Dialyzer, examining how each tool handles exhaustiveness, function overloading, numeric precision, gradual typing, and occurrence typing. Our findings suggest that set-theoretic types are expressive enough to capture Erlang programmers’ intentions: intersection types and automatic exhaustiveness checking provide clear advantages, and the approach is not in conflict with Erlang’s let-it-crash idiom. Although the type system lacks principal types, types can be refined as needed through annotations. Scalability for typechecking is largely addressed, and in the cases where it remains an issue, less expressive tools face similar limitations.

Tue 25 Aug

Displayed time zone: Eastern Time (US & Canada) change

13:30 - 15:00
Memory Models, Garbage Collection, and ConcurrencyICFP Papers at IP126 Auditorium
Chair(s): Mae Milano Princeton University
13:30
18m
Talk
Tail Modulo Async-AwaitRemote
ICFP Papers
Emma Nardino École Normale Supérieure de Lyon / LIP, Ludovic Henrio University of Lyon - ENS Lyon - UCBL - CNRS - Inria - LIP, Gabriel Radanne Inria, Yannick Zakowski Inria
DOI Pre-print File Attached
13:48
18m
Talk
Set-Theoretic Types for Erlang in PracticeRemote
ICFP Papers
Albert Schimpf University of Kaiserslautern-Landau, Annette Bieniusa RPTU Kaiserslautern-Landau
DOI
14:06
18m
Talk
Mode Crossing
ICFP Papers
Benjamin Peters MPI-SWS, Jules Jacobs Jane Street, Diana Kalinichenko Jane Street, Liam Stevenson Jane Street, Aspen Smith Jane Street, Derek Dreyer MPI-SWS, Richard A. Eisenberg Jane Street
DOI
14:24
18m
Talk
A Separation Logic for Parallel Time Complexity with Work and Span Credits
ICFP Papers
Alexandre Moine New York University, Sam Westrick New York University, Joseph Tassarotti New York University
DOI Pre-print
14:42
18m
Talk
LoCalMem: Type-Directed Adaptive Serialization for Location- and Content-Addressable Memory
ICFP Papers
Michael Rainey Carnegie Mellon University, Michael Borkowski Purdue University, Michael Vollmer University of Kent, Chaitanya S. Koparkar Indiana University, Mikah Kainen Purdue University, Vidush Singhal Purdue University
DOI Pre-print