[Haskell-cafe] Trying to make a Typeable instance

Adrian Hey ahey at iee.org
Sun Jul 8 09:17:35 EDT 2007


Neil Mitchell wrote:
>> data ListGT map k a
>>   = Empt
>>   | BraF ![k] a !(map (ListGT map k a))
>>   | BraE ![k]   !(map (ListGT map k a))
>>    deriving( Typeable )
> 
> Not in Haskell, only in GHC.

Thanks for the suggestions from Hugh and Neil. I tried this anyway
and it doesn't work even with ghc I'm afraid..

> Can't make a derived instance of `Typeable (ListGT map k a)'
>  (`ListGT' has arguments of kind other than `*')
> When deriving instances for `ListGT'

So it seems ghc doesn't like kinds (* -> *) either :-(

Actually, AFAICT the problem seems to be with Data.Typeable
itself rather than ghc. There is no proper TypeRep for
(ListGT map k a) because map is not a type.

Or maybe I'm missing something. Is it possible to make correct
instances of Typeable for types like this?

What would Data.Derive make of this?

Thanks for any thoughts or insight
--
Adrian Hey




More information about the Haskell-Cafe mailing list