It looks like JHC doesn't support the CPP extension. It also looks like it tries to parse .cabal files by itself -- which doesn't work right with flags. Together, this makes it hard to compile quickcheck. (Mostly the former, though.)