Thanks for explaining, it's a nice trick. On Sun, Nov 28, 2010 at 11:16 AM, Antoine Latter <[email protected]> wrote: > On Sat, Nov 27, 2010 at 8:38 PM, Jinjing Wang <[email protected]> wrote: >> Hi Michael, you are absolutely correct, cabal did set the flags >> automatically. >> >> To sum up, here's what needs to be done: >> >> * add `flag ghc7` as a field in cabal >> * add: >> >> if flag(ghc7) >> build-depends: base >= 4.3 && < 5 >> cpp-options: -DGHC7 >> else >> build-depends: base >= 4 && < 4.3 >> >> in library field in cabal >> >> * add `{-# LANGUAGE CPP #-}` in source file >> * add >> >> #if GHC7 >> x >> >> #else >> y >> >> #endif >> >> >> Hi Antonine, I don't know how to not set those fields in the >> constructor.. as a QQ noob, I'm just hacking on some legacy code. This >> code doesn't compile in GHC7, so I have to do this trick. >> >> * https://github.com/nfjinjing/mps/blob/master/src/MPS/TH.hs >> > > Something like: > > myQuoter = QuasiQuoter { > quoteExp = expQuoter, > quotePat = patQuoter > } > > Will work in either version, but it will leave the un-set fields set > to `undefined`, so you'll get a compile error if you try to use them. > > I haven't tested this, but I've done it with other record types. > > Take care, > Antoine >
-- jinjing _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
