English

GADTs meet subtyping

Programming Languages 2013-01-15 v1

Abstract

While generalized algebraic datatypes (\GADTs) are now considered well-understood, adding them to a language with a notion of subtyping comes with a few surprises. What does it mean for a \GADT parameter to be covariant? The answer turns out to be quite subtle. It involves fine-grained properties of the subtyping relation that raise interesting design questions. We allow variance annotations in \GADT definitions, study their soundness, and present a sound and complete algorithm to check them. Our work may be applied to real-world ML-like languages with explicit subtyping such as OCaml, or to languages with general subtyping constraints.

Keywords

Cite

@article{arxiv.1301.2903,
  title  = {GADTs meet subtyping},
  author = {Gabriel Scherer and Didier Rémy},
  journal= {arXiv preprint arXiv:1301.2903},
  year   = {2013}
}

Comments

arXiv admin note: substantial text overlap with arXiv:1210.5935

R2 v1 2026-06-21T23:08:44.828Z