Haskell 98 Unification