Ah, I've figured it out. The new .hi-boot file format is actually Haskell!! Well almost. You have to fully qualify type names (you can't use Int, you must use GHC.Base.Int) and the input isn't run through -cpp.