Constraint Satisfaction Process
In order to propagate the type constraints, the ML compiler uses a form of "unification" which is a specialized kind of pattern matching.
E.g., if the type of x is recorded as 'a in one part of an expression and as real in another part of the expression, then real wins out (being more restrictive). Anything else in the same expression that had the type 'a must now also be real.
We will study unification when we encounter the PROLOG language.