
Hello, I made a simple datatype called Pair and I'd like to make it an instance of Show class. But when I try to do that I run into troubles: data Pair a b = Pair a b instance Show a b => Show (Pair a b) where show (Pair a b) = show a ++ "_" ++ show b In Hugs I get this error: "Haskell does not support multiple parameter classes" When I run it in ghci I get a kind error "Show is applied to too many type arguments in the instance declaration for Show (Pair a b)" Am I jsut using wrong syntax or is it not possible to do? Thanks in advance Zdenes

zdenes:
Hello,
I made a simple datatype called Pair and I'd like to make it an instance of Show class. But when I try to do that I run into troubles:
data Pair a b = Pair a b instance Show a b => Show (Pair a b) where show (Pair a b) = show a ++ "_" ++ show b
In Hugs I get this error: "Haskell does not support multiple parameter classes" When I run it in ghci I get a kind error "Show is applied to too many type arguments in the instance declaration for Show (Pair a b)"
Am I jsut using wrong syntax or is it not possible to do?
Missing some parens and a comma:
data Pair a b = Pair a b
instance (Show a, Show b) => Show (Pair a b) where show (Pair a b) = show a ++ "_" ++ show b
$ hugs A.hs Main> show (Pair 'x' ()) "'x'_()" Alternately:
data Pair a b = Pair a b deriving Show
-- Don
participants (2)
-
dons@cse.unsw.edu.au
-
zdenes@seznam.cz