15-851 Computation and Deduction
Lecture 21: Intersection Types

The system with atomic subtyping lacks principal types, that is, an expression may have several unrelated types. This complicates type checking and create problems at module boundaries, where type specifications must be given explicitly.

In this lecture we introduce a variant of intersection types which solves this problem and discuss its properties. Instead of constraint-based inference, we discuss a new technique, bi-directional type checking, which seems to be more appropriate for practical implementations of complex type systems.

[ Home | Schedule | Assignments | Handouts | Software | Overview ]

Frank Pfenning