Far better rewriten unification algorithm