Add support for GHC 7.6 again

This just puts the changes for `GHC 7.8` inside CPP. Sorry about the whitespace changes, if you wish, I can try to remove them or split them into a separate commit.