
Excerpts from John Goerzen's message of Fri Jan 30 18:31:00 -0600 2009:
Why would cabal-install select a different base than running Setup manually?
I can't hard-code base >= 4 into .cabal because that would break for GHC 6.8 users. I have CPP code that selects what to compile based on GHC version.
-- John
I think it would be easiest to simply not use CPP and set a dependency on the extensible-exceptions package: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/extensible-except... Using this package, you don't need CPP at all - just import 'Control.Exception.Extensible' instead of Control.Exception and you're done. This package works under both ghc 6.8 and 6.10 (when compiled under 6.10, it just re-exports all of Control.Exception, and on <= 6.10 it actually compiles the code) and means you don't have to have two awkward copies of the same code that use different exception-handling mechanisms. Austin