experimenting with a different presentation of unification
removed an extra new name generation to make everything simpler
added gvar-const case
Merging upstream