15-851 Computation and Deduction
Lecture 15: Parametric Polymorphism
So far we have modeled a modest amount of polymorphism by
type-checking a let name constructs after substitution. In
this lecture we avoid this technique in favor of adding an explicit
quantifier forall a. t to the language of types.
The resulting system has some remarkable properties: it allows more
programs to be type-checked, generally improving the expressive power of
the type systems. But it also has an important downside: type-checking
is now undecidable. We prove here only the most important property,
namely that type preservation still holds.