arXiv · 2411.00589
Early Announcement: Parametricity for GADTs
Abstract
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.
Explore related subjects
Keep this discovery
Pierre Cagne, Patricia Johann. 2024-11-01. Early Announcement: Parametricity for GADTs. https://arxiv.org/abs/2411.00589
Cite the original work for its findings. Save a collection to share your selection of sources.