Requirement
Universe of types
Type inference/erasure