Publikationer pr. år
Publikationer pr. år
Magnus Madsen*, Jonathan Lindegaard Starup*, Matthew Lutze*
Publikation: Bidrag til bog/antologi/rapport/proceeding › Konferencebidrag i proceedings › Forskning › peer review
We propose restrictable variants as a simple and practical alternative to extensible variants. Restrictable variants combine nominal and structural typing: a restrictable variant is an algebraic data type indexed by a type-level set formula that captures its set of active labels. We introduce new pattern-matching constructs that allows programmers to write functions that only match on a subset of variants, i.e., pattern-matches may be non-exhaustive. We then present a type system for restrictable variants which ensures that such non-exhaustive matches cannot get stuck at runtime. An essential feature of restrictable variants is that the type system can capture structure-preserving transformations: specifically the introduction and elimination of variants. This property is important for writing reusable functions, yet many row-based extensible variant systems lack it. In this paper, we present a calculus with restrictable variants, two partial pattern-matching constructs, and a type system that ensures progress and preservation. The type system extends Hindley-Milner with restrictable variants and supports type inference with an extension of Algorithm W with Boolean unification. We implement restrictable variants as an extension of the Flix programming language and conduct a few case studies to illustrate their practical usefulness.
| Originalsprog | Engelsk |
|---|---|
| Titel | 37th European Conference on Object-Oriented Programming, ECOOP 2023 |
| Redaktører | Karim Ali, Guido Salvaneschi |
| Forlag | Dagstuhl Publishing |
| Publikationsdato | jul. 2023 |
| Sider | 17:1-17:27 |
| Artikelnummer | 17 |
| ISBN (Elektronisk) | 9783959772815 |
| DOI | |
| Status | Udgivet - jul. 2023 |
| Begivenhed | 37th European Conference on Object-Oriented Programming, ECOOP 2023 - Seattle, USA Varighed: 17 jul. 2023 → 21 jul. 2023 |
| Konference | 37th European Conference on Object-Oriented Programming, ECOOP 2023 |
|---|---|
| Land/Område | USA |
| By | Seattle |
| Periode | 17/07/2023 → 21/07/2023 |
| Navn | Leibniz International Proceedings in Informatics, LIPIcs |
|---|---|
| Vol/bind | 263 |
| ISSN | 1868-8969 |
Publikation: Typer af afhandling › Ph.d.-afhandling