Follow TH changes in GHC 7.9.

Pred now is just an alias of Type. See GHC Trac #7021.
Reduce duplication, simplify CPP macros