Below you can see that the C preprocessor is seeing -D__GLASGOW_HASKELL__=704 rather than 740 or 741. I actually can't believe things are working as well as they are with this set wrong, I must be confused about something.
# ghc -v src/HSP/XMLGenerator.hs
Glasgow Haskell Compiler, Version 188.8.131.5211219, stage 2 booted by GHC version 7.0.4
Using binary package database: /usr/lib/ghc/package.conf.d/package.cache
hiding package QuickCheck-184.108.40.206 to avoid conflict with later version QuickCheck-2.4.2
hiding package parsec-220.127.116.11 to avoid conflict with later version parsec-3.1.1
hiding package deepseq-18.104.22.168 to avoid conflict with later version deepseq-22.214.171.124
hiding package binary-0.5.0.3 to avoid conflict with later version binary-0.5.1.0
wired-in package ghc-prim mapped to ghc-prim-0.2.0.0-8ac016c3ce1a849dd0dc79e063bc9557
wired-in package integer-gmp mapped to integer-gmp-0.4.0.0-e41cd2dccf9e5fe2691d1d2675c27e0e
wired-in package base mapped to base-126.96.36.199-34c7e4892a2dab9adf7d854321107d7b
wired-in package rts mapped to builtin_rts
wired-in package template-haskell mapped to template-haskell-188.8.131.52-92561749764e9edfa955dd746059a058
wired-in package dph-seq not found.
wired-in package dph-par not found.
Hsc static flags: -static
*** Chasing dependencies:
Chasing modules from: *src/HSP/XMLGenerator.hs
Created temporary directory: /tmp/ghc10150_0
*** C pre-processor:
'/usr/bin/gcc' '-E' '-undef' '-traditional' '-fno-stack-protector' '-Wl,--hash-size=31' '-Wl,--reduce-memory-overheads' '-I' '/usr/lib/ghc/base-184.108.40.206/include' '-I' '/usr/lib/ghc/include' '-D__GLASGOW_HASKELL__=704' '-Dlinux_BUILD_OS=1' '-Dx86_64_BUILD_ARCH=1' '-Dlinux_HOST_OS=1' '-Dx86_64_HOST_ARCH=1' '-x' 'c' 'src/HSP/XMLGenerator.hs' '-o' '/tmp/ghc10150_0/ghc10150_0.hscpp'
*** Haskell pre-processor:
'trhsx' 'src/HSP/XMLGenerator.hs' '/tmp/ghc10150_0/ghc10150_0.hscpp' '/tmp/ghc10150_0/ghc10150_0.hspp'