| | |
Summary: Page 1
Formal Parametric Polymorphism
Martín Abadi Luca Cardelli PierreLouis Curien
Digital Equipment Corporation Digital Equipment Corporation CNRS
Systems Research Center Systems Research Center Ecole Normale Supérieure
Abstract
A polymorphic function is parametric if its behavior does not depend on the type at which it is instanti
ated. Starting with Reynolds's work, the study of parametricity is typically semantic. In this paper, we de
velop a syntactic approach to parametricity, and a formal system that embodies this approach, called system
R . Girard's system F deals with terms and types; R is an extension of F that deals also with relations be
tween types.
In R , it is possible to derive theorems about functions from their types, or ``theorems for free'', as
Wadler calls them. An easy ``theorem for free'' asserts that the type "(X)X®Bool contains only constant
functions; this is not provable in F. There are many harder and more substantial examples. Various
metatheorems can also be obtained, such as a syntactic version of Reynolds's abstraction theorem.
Page 2
1. Explicit relations
A polymorphic function is parametric if its behavior does not depend on the type at which it is instanti
ated [Strachey 1967] . A function that reverses lists, for example, is parametric because it does not look at
|