deriving...

Keean Schupke k.schupke at imperial.ac.uk
Wed Oct 13 11:02:46 EDT 2004


Yes, I could quite easily write the generator in TemplateHaskell (have 
played with it before)
_but_ I don't like the $(xxx) syntax... Perhaps if Simon could be 
persuaded to allow deriving
clauses to be defined in TH?

data X x = X x
$(deriveMyClass (reify X))

could perhaps be defined from

data X x = X x deriving MyClass


I saw the same suggestion earlier today on the Haskell list...


Keean.


Andre Pang wrote:

> On 13/10/2004, at 10:02 AM, MR K P SCHUPKE wrote:
>
>> Okay, I see the Generic type class stuff does not support multi
>> parameter type classes. I guess I am stuck - any suggestions as to
>> how best do this?
>>
>> I wish to be able to derive type level labels for datatypes, like
>> the following:
>>
>> data Fred a = Fred a deriving TTypeable
>>
>> generates the instance:
>>
>> instance TTypeable a al => TTypeable (Fred a) (NCons (N3 (N4 (N5 
>> Nil))) (TCons al Nil))
>
>
> If you are happy to live on the edge a bit (which you seem to be happy 
> with, considering that you're playing with GHC CVS ;), Template 
> Haskell might be one way to do it.  See "Template Haskell: A Report 
> from the Field", a paper where Ian Lynagh does exactly what you're 
> trying to do:
>
>     http://www.haskell.org/th/papers.html
>
>



More information about the Glasgow-haskell-users mailing list