Polymorphic types
A polymorphic type contains one or more type variables
- ‘a list
- ‘a * ‘b
- ((‘a * ‘b) list ‘a) -> ‘b
To make a regular type, replace the type variables with regular types
- Each occurrence of a type variable must be replaced with the same type (cf. unification in logic programming)