GADT meet subtyping
Abstract
While generalized abstract datatypes 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 and involves new semantic properties of types that raise interesting design questions. We allow variance annotations in GADT definitions, present a sound and effective algorithm to check such declarations, and describe its application in a real-world language.
Domains
Programming Languages [cs.PL]
Fichier principal
scherer_remy_gadts_variance_ml_workshop_extended_abstract.pdf (235.61 Ko)
Télécharger le fichier
Origin : Files produced by the author(s)
Loading...