Saved in:
Bibliographic Details
Main Authors: Schimpf, Albert, Wehr, Stefan, Bieniusa, Annette
Format: Preprint
Published: 2026
Subjects:
Online Access:https://arxiv.org/abs/2603.22032
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866908907071340544
author Schimpf, Albert
Wehr, Stefan
Bieniusa, Annette
author_facet Schimpf, Albert
Wehr, Stefan
Bieniusa, Annette
contents Erlang's dynamic typing discipline can lead to runtime errors that persist even after process restarts. Some of these runtime errors could be prevented through static type checking. While Erlang provides a type specification language, the compiler does not enforce these types, thereby limiting their role to documentation purposes. Type checking Erlang code is challenging due to language features such as dynamic type tests, subtyping, equi-recursive types, polymorphism, intersection types in signatures, and untagged union types. This work presents a set-theoretic type system for Erlang which captures the core features of Erlang's existing type language. The formal type system guarantees type soundness, and ensures that type checking remains decidable. Additionally, an implementation of a type checker is provided, supporting all features of the Erlang type language and most term-level language constructs. A case study with modules from Erlang's standard library, an external project, and the type checker itself demonstrates its effectiveness in verifying real-world Erlang code.
format Preprint
id arxiv_https___arxiv_org_abs_2603_22032
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle Set-Theoretic Types for Erlang: Theory, Implementation, and Evaluation
Schimpf, Albert
Wehr, Stefan
Bieniusa, Annette
Programming Languages
Erlang's dynamic typing discipline can lead to runtime errors that persist even after process restarts. Some of these runtime errors could be prevented through static type checking. While Erlang provides a type specification language, the compiler does not enforce these types, thereby limiting their role to documentation purposes. Type checking Erlang code is challenging due to language features such as dynamic type tests, subtyping, equi-recursive types, polymorphism, intersection types in signatures, and untagged union types. This work presents a set-theoretic type system for Erlang which captures the core features of Erlang's existing type language. The formal type system guarantees type soundness, and ensures that type checking remains decidable. Additionally, an implementation of a type checker is provided, supporting all features of the Erlang type language and most term-level language constructs. A case study with modules from Erlang's standard library, an external project, and the type checker itself demonstrates its effectiveness in verifying real-world Erlang code.
title Set-Theoretic Types for Erlang: Theory, Implementation, and Evaluation
topic Programming Languages
url https://arxiv.org/abs/2603.22032