Early Announcement: Parametricity for GADTs
Relational parametricity was first introduced by Reynolds for System F. Although System F provides a strong model for the type systems at the core of modern functional programming languages, it lacks features of daily programming practice such as complex data types. In order to reason parametrically...
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | Relational parametricity was first introduced by Reynolds for System F.
Although System F provides a strong model for the type systems at the core of
modern functional programming languages, it lacks features of daily programming
practice such as complex data types. In order to reason parametrically about
such objects, Reynolds' seminal ideas need to be generalized to extensions of
System F. Here, we explore such a generalization for the extension of System F
by Generalized Algebraic Data Types (GADTs) as found in Haskell. Although GADTs
generalize Algebraic Data Types (ADTs) -- i.e., simple recursive types such as
lists, trees, etc. -- we show that naively extending the parametric treatment
of these recursive types is not enough to tackle GADTs. We propose a tentative
workaround for this issue, borrowing ideas from the categorical semantics of
GADTs known as (functorial) completion. We discuss some applications, as well
as some limitations, of this solution. |
---|---|
DOI: | 10.48550/arxiv.2411.00589 |