Hi Malcolm:

cpphs is under consideration as a replacement for GCC's C preprocessor in the GHC toolchain:
https://ghc.haskell.org/trac/ghc/wiki/Proposal/NativeCpp

GHC 7.10.3's build fails when cpphs is used as the C preprocessor (--with-hs-cpp=cpphs --with-hs-cpp-flags="--cpp").

It runs into this error when preprocessing libraries/base/GHC/Natural.hs:

cpphs: macro MIN_VERSION_integer_gmp expected 3 arguments, but was given 0

I've reproduced this issue on Ubuntu 14.04 x86-64 and SmartOS 15.3.0 x86-64.

Interestingly the error seems to arise only when preprocessing Natural.hs while the autogenerated cabal-macros.h is present.  Removing that include from the cpphs flags leads to a clean preprocessing run.

I have more details of this investigation here:
https://gist.github.com/AlainODea/bd5b3e0e6f7c4227f009

Is this a bug?

Best,
Alain