unify no longer directly updates the types of those it unifies
unify no longer directly updates the types of those it unifies

This avoids some clones if the type is not needed. If one of the input types need the new type it can use the Type that is returned from unify

Marwes/haskell-compiler