An Efficient Unification Algorithm