Given the example ?- father(X) = X. it states that:
Because the left hand term is the variable X , by clause 2 it decides that the terms do unify, and (in accordance with clause 2) instantiates X to the right hand side, namely father(X) .
I think it should say:
Because the right hand term is the variable X , by clause 2 it decides that the terms do unify, and (in accordance with clause 2) instantiates X to the left hand side, namely father(X) .
Left and right seems to be swapped.