unification, fixed for haskell vacancy