[Haskell-cafe] typeclass and functional dependency problem