Unification is the process of finding an assignement of variables and expressions to types, so that typing constraints are satisfied (see Type Inference to see where the constraints come from).
There are only two types of constraints in unification: 1. Typing constraints (binding a variable or an expression to a type expression) 2. Equality constraints between type expressions.
The Martelli Montanari algorithm puts the constraints in a list, and processes them one by one. What happens depends of the type of equality constraint, but it's usually either adding more constraints or making replacement of type variables in all the constraints.
There are four types of equality constraints.