On invocation
When calling a polymorphic function, the caller knows the real type
- So replace the type variable with the regular type
val length = fn : ‘a list -> int
length([3,4,5]); (* replaces ‘a with int *)
length([(3.0,”hi”),(2.0,”there”)]); (* replaces ‘a with int*string *)