A lightweight implementation of generics and dynamics
Types and Programming Languages