{-# LANGUAGE CPP #-} module HDocs.Ghc.Compat ( pkgDatabase, cleanupHandler, UnitId, unitId, moduleUnitId, getPackageDetails ) where import qualified GHC import qualified Module import qualified Packages as GHC #if __GLASGOW_HASKELL__ == 710 import Exception (ExceptionMonad) #endif pkgDatabase :: GHC.DynFlags -> Maybe [GHC.PackageConfig] #if __GLASGOW_HASKELL__ >= 800 pkgDatabase = fmap (concatMap snd) . GHC.pkgDatabase #elif __GLASGOW_HASKELL__ == 710 pkgDatabase = GHC.pkgDatabase #endif #if __GLASGOW_HASKELL__ >= 800 cleanupHandler :: GHC.DynFlags -> m a -> m a cleanupHandler _ = id #elif __GLASGOW_HASKELL__ == 710 cleanupHandler :: (ExceptionMonad m) => GHC.DynFlags -> m a -> m a cleanupHandler = GHC.defaultCleanupHandler #endif #if __GLASGOW_HASKELL__ >= 800 type UnitId = Module.UnitId #elif __GLASGOW_HASKELL__ == 710 type UnitId = Module.PackageKey #endif unitId :: GHC.PackageConfig -> UnitId #if __GLASGOW_HASKELL__ >= 802 unitId = GHC.packageConfigId #elif __GLASGOW_HASKELL__ == 800 unitId = GHC.unitId #elif __GLASGOW_HASKELL__ == 710 unitId = GHC.packageKey #endif moduleUnitId :: Module.Module -> UnitId #if __GLASGOW_HASKELL__ >= 800 moduleUnitId = Module.moduleUnitId #elif __GLASGOW_HASKELL__ == 710 moduleUnitId = Module.modulePackageKey #endif getPackageDetails :: GHC.DynFlags -> UnitId -> GHC.PackageConfig getPackageDetails = GHC.getPackageDetails