Ticket #7018 (closed feature request: invalid)
Preprocess code before checking safety
Apparently GHC checks safety (as safe Haskell) before preprocessing. This is sometimes undesirable; for example:
#if __GLASGOW_HASKELL__ >= 702 import Foreign.Safe #else import Foreign #endif
Not sure if preprocessing will break the design of safe Haskell, but if it won't I hope GHC can accept this code as safe.