GADTs are not nice to me ;-)
Hello everybody, I wanted to do something like that: data Pair :: (* -> *) -> * where Pair :: a b -> b -> Pair a data Sel :: * -> * where A :: Sel Bool B :: Sel Integer showSnd :: Pair Sel -> String showSnd (Pair A bool) = show bool showSnd (Pair B integer) = show integer However, GHC 6.4.1 with -fglasgow-exts complains in the second last and last line that there is no instance for (Show b). I don't really understand this since in my opinion it is clear that bool :: Bool and integer :: Integer and that therefore bool and integer are showable. What's the problem with my code? Best wishes, Wolfgang
Wolfgang Jeltsch wrote:
Hello everybody,
I wanted to do something like that:
data Pair :: (* -> *) -> * where Pair :: a b -> b -> Pair a
data Sel :: * -> * where A :: Sel Bool B :: Sel Integer
showSnd :: Pair Sel -> String showSnd (Pair A bool) = show bool showSnd (Pair B integer) = show integer
However, GHC 6.4.1 with -fglasgow-exts complains in the second last and last line that there is no instance for (Show b). I don't really understand this since in my opinion it is clear that bool :: Bool and integer :: Integer and that therefore bool and integer are showable. What's the problem with my code?
Best wishes, Wolfgang
I cut and pasted your code into ghci-6.4.2 with -fglasgow-exts and there was no error. And I can (print (showSnd (Pair A True)) and (print (showSnd (Pair B 8))) but when I try to compile it with ghc-6.4.2 it complains about the Show instance. I find this deeply wierd, and it seems like a bug. Changing the definition of Pair made it compile and run with ghc:
data Pair :: (* -> *) -> * where Pair :: (Show b) => a b -> b -> Pair a
-- Chris
Am Montag, 3. Juli 2006 16:49 schrieb Chris Kuklewicz:
I cut and pasted your code into ghci-6.4.2 with -fglasgow-exts and there was no error. And I can (print (showSnd (Pair A True)) and (print (showSnd (Pair B 8))) but when I try to compile it with ghc-6.4.2 it complains about the Show instance. I find this deeply wierd, and it seems like a bug.
Thank you for this information. I've reported this as a bug now. Best wishes, Wolfgang
participants (2)
-
Chris Kuklewicz -
Wolfgang Jeltsch