[Haskell] same type multiply implementing a class