summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/basicTypes/Module.hs9
1 files changed, 9 insertions, 0 deletions
diff --git a/compiler/basicTypes/Module.hs b/compiler/basicTypes/Module.hs
index a20de2d0b3..2c60463c04 100644
--- a/compiler/basicTypes/Module.hs
+++ b/compiler/basicTypes/Module.hs
@@ -42,6 +42,7 @@ module Module
dphParPackageKey,
mainPackageKey,
thisGhcPackageKey,
+ holePackageKey, isHoleModule,
interactivePackageKey, isInteractiveModule,
wiredInPackageKeys,
@@ -399,9 +400,17 @@ interactivePackageKey = fsToPackageKey (fsLit "interactive")
-- to symbol names, since there can be only one main package per program.
mainPackageKey = fsToPackageKey (fsLit "main")
+-- | This is a fake package id used to provide identities to any un-implemented
+-- signatures. The set of hole identities is global over an entire compilation.
+holePackageKey :: PackageKey
+holePackageKey = fsToPackageKey (fsLit "hole")
+
isInteractiveModule :: Module -> Bool
isInteractiveModule mod = modulePackageKey mod == interactivePackageKey
+isHoleModule :: Module -> Bool
+isHoleModule mod = modulePackageKey mod == holePackageKey
+
wiredInPackageKeys :: [PackageKey]
wiredInPackageKeys = [ primPackageKey,
integerPackageKey,