GADT meet Subtyping - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Reports (Research Report) Year : 2012

GADT meet Subtyping

Abstract

While generalized abstract datatypes (GADT) 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.
Les types algébriques généralisés (\textit{Generalized Algebraic Datatypes}, \GADTs) sont maintenant bien compris, mais leur ajout à un langage équipé de sous-typage nous réservait quelques surprises. Qu'est-ce qu'être covariant pour un paramètre de \GADT? % La réponse s'avère être subtile. Elle met en jeu des propriétés fines de la relation de sous-typage qui soulèvent d'intéressantes problématiques de conception de langage. % Nous permettons des annotations de variance dans les définitions de \GADTs, étudions leur correction, et présentons un algorithme correct et complet pour les vérifier. Notre travail peut s'appliquer à un langage complet inspiré de ML et avec sous-typage explicite, tel que OCaml, ou même à des langages avec des contraintes générales de sous-typage.
Fichier principal
Vignette du fichier
RR-8114.pdf (638.17 Ko) Télécharger le fichier
slides.pdf (384.89 Ko) Télécharger le fichier
Origin : Files produced by the author(s)
Format : Other
Loading...

Dates and versions

hal-00744292 , version 1 (22-10-2012)

Identifiers

Cite

Gabriel Scherer, Didier Rémy. GADT meet Subtyping. [Research Report] RR-8114, INRIA. 2012, pp.33. ⟨hal-00744292⟩
141 View
149 Download

Altmetric

Share

Gmail Facebook X LinkedIn More