15851 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 constraintbased inference,
we discuss a new technique, bidirectional type checking, which
seems to be more appropriate for practical implementations of complex type
systems.
[ Home
 Schedule
 Assignments
 Handouts
 Software
 Overview
]
fp@cs
Frank Pfenning
