Polymorphic type system, a type factory, and type unification.