
19 May
2005
19 May
'05
8:39 a.m.
Wukaichen,
data People = A | B | C | D | E | F deriving (Show, Eq, Ord, Enum) data Pair a = Pair a a deriving Eq
instance Show (Pair People) where show (Pair x y) = "<" ++ show x ++ ", " ++ show y ++ ">"
GHC is right, actually. Haskell 98 requires instance declarations to have the form instance (...) => C (T a1 ... an) where a1 are type variables, not type constructors as in your example. However, you can use the Glasgow extensions to get rid of this restrictions. For example by adding {-# OPTIONS -fglasgow-exts#-} to the top of your file. HTH, Stefan