Emil Axelsson | 20 Dec 11:16

Class deriving in GHC 6.8

Hello all!

How come in GHC 6.6 I could to write

> {-# OPTIONS_GHC -fglasgow-exts -fallow-undecidable-instances #-}
> data Foo   = Foo         deriving Show
> data Bar c = Bar (c Foo) deriving Show

but in GHC 6.8.2 I get the error

>     No instance for (Show (c Foo))
>       arising from the 'deriving' clause of a data type declaration
>                    at Ert.hs:3:0-37
>     Possible fix: add an instance declaration for (Show (c Foo))
>     When deriving the instance for (Show (Bar c))

Thanks,

/ Emil
Emil Axelsson | 20 Dec 11:54

Re: Class deriving in GHC 6.8

After looking more closely at user's manual, I just found that the following works:

> {-# OPTIONS_GHC -fglasgow-exts -fallow-undecidable-instances #-}
> data Foo   = Foo deriving Show
> data Bar c = Bar (c Foo)               
> 
> deriving instance Show (c Foo) => Show (Bar c)

/ Emil

On 2007-12-20 11:18, Emil Axelsson wrote:
> Hello all!
> 
> How come in GHC 6.6 I could to write
> 
>> {-# OPTIONS_GHC -fglasgow-exts -fallow-undecidable-instances #-}
>> data Foo   = Foo         deriving Show
>> data Bar c = Bar (c Foo) deriving Show
> 
> but in GHC 6.8.2 I get the error
> 
>>     No instance for (Show (c Foo))
>>       arising from the 'deriving' clause of a data type declaration
>>                    at Ert.hs:3:0-37
>>     Possible fix: add an instance declaration for (Show (c Foo))
>>     When deriving the instance for (Show (Bar c))
> 
> 
> 
> Thanks,
(Continue reading)


Gmane