Hi Malcolm, In this case, I am counting on GHC's
{-# LANGUAGE GeneralizedNewtypeDeriving #-} feature to derive the instances for the classes I am including in the deriving clause. So perhaps portability is not a big issue here in any case. I do think that defObj(MyType) looks a bit cleaner than $(defObj "MyType") so I am starting to lean back towards the CPP solution after all. CPP is not always the best option, but perhaps it is in this case. Kevin On Sep 15, 10:31 am, Malcolm Wallace <malcolm.wall...@me.com> wrote: > > 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. > > I was one of those people advising against the use of CPP macros. > However, Template Haskell is ghc-only, and is unlikely ever to be > implemented by any other Haskell compiler. Thus CPP, for all its > faults, may be the better solution here, simply because it is portable. > > (I also note in passing that ghc's core libraries themselves use > exactly this kind of CPP macro to generate lots of tedious boilerplate.) > > Regards, > Malcolm > > _______________________________________________ > Haskell-Cafe mailing list > haskell-c...@haskell.orghttp://www.haskell.org/mailman/listinfo/haskell-cafe _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe