[Haskell-cafe] Re: Scraping boilerplate deriving?

Kevin Jardine kevinjardine at gmail.com
Wed Sep 15 01:46:32 EDT 2010


Hi John,

That's what I had originally. However, some people have made critical
comments about CPP macros on this list and I thought that TH was
considered the better option.

What do other people think?

Serguey's code is great in any case as it gives me a clearer
understanding on how TH works.

Kevin

On Sep 14, 11:01 pm, John Meacham <j... at repetae.net> wrote:
> On Tue, Sep 14, 2010 at 01:24:16AM -0700, Kevin Jardine wrote:
> > I have a set of wrapper newtypes that are always of the same format:
>
> > newtype MyType = MyType Obj deriving (A,B,C,D)
>
> > where Obj, A, B, C, and D are always the same. Only MyType varies.
>
> > A, B, C, and D are automagically derived by GHC using the
>
> > {-# LANGUAGE GeneralizedNewtypeDeriving #-}
>
> > feature.
>
> > I would like to use some macro system (perhaps Template Haskell?) to
> > reduce this to something like
>
> > defObj MyType
>
> How about the straightforward?
>
> > {-# LANGUAGE CPP #-}
> > #define defObj(t)   newtype t = t Obj deriving (A,B,C,D)
>
> > defObj(Foo)
> > defObj(Bar)
> > ....
>
> It has the advantage of being (de facto) portable.
>
>         John
>
> --
> John Meacham - ⑆repetae.net⑆john⑈ -http://notanumber.net/
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-C... at haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe


More information about the Haskell-Cafe mailing list