summaryrefslogtreecommitdiff
path: root/compiler/main/PackageConfig.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/main/PackageConfig.hs')
-rw-r--r--compiler/main/PackageConfig.hs20
1 files changed, 20 insertions, 0 deletions
diff --git a/compiler/main/PackageConfig.hs b/compiler/main/PackageConfig.hs
index 3c41151c11..71a84d8622 100644
--- a/compiler/main/PackageConfig.hs
+++ b/compiler/main/PackageConfig.hs
@@ -12,13 +12,18 @@ module PackageConfig (
-- * PackageKey
packageConfigId,
+ -- * LibraryName
+ LibraryName(..),
+
-- * The PackageConfig type: information about a package
PackageConfig,
InstalledPackageInfo(..),
InstalledPackageId(..),
SourcePackageId(..),
PackageName(..),
+ UnitName(..),
Version(..),
+ packageUnitName,
defaultPackageConfig,
installedPackageIdString,
sourcePackageIdString,
@@ -54,6 +59,8 @@ type PackageConfig = InstalledPackageInfo
newtype InstalledPackageId = InstalledPackageId FastString deriving (Eq, Ord)
newtype SourcePackageId = SourcePackageId FastString deriving (Eq, Ord)
newtype PackageName = PackageName FastString deriving (Eq, Ord)
+newtype UnitName = UnitName FastString deriving (Eq, Ord)
+newtype LibraryName = LibraryName FastString deriving (Eq, Ord)
instance BinaryStringRep InstalledPackageId where
fromStringRep = InstalledPackageId . mkFastStringByteString
@@ -67,6 +74,10 @@ instance BinaryStringRep PackageName where
fromStringRep = PackageName . mkFastStringByteString
toStringRep (PackageName s) = fastStringToByteString s
+instance BinaryStringRep LibraryName where
+ fromStringRep = LibraryName . mkFastStringByteString
+ toStringRep (LibraryName s) = fastStringToByteString s
+
instance Uniquable InstalledPackageId where
getUnique (InstalledPackageId n) = getUnique n
@@ -79,6 +90,12 @@ instance Uniquable PackageName where
instance Outputable InstalledPackageId where
ppr (InstalledPackageId str) = ftext str
+instance Outputable UnitName where
+ ppr (UnitName str) = ftext str
+
+instance Outputable LibraryName where
+ ppr (LibraryName str) = ftext str
+
instance Outputable SourcePackageId where
ppr (SourcePackageId str) = ftext str
@@ -172,3 +189,6 @@ pprPackageConfig InstalledPackageInfo {..} =
packageConfigId :: PackageConfig -> PackageKey
packageConfigId = packageKey
+packageUnitName :: PackageConfig -> UnitName
+packageUnitName pkg = let PackageName fs = packageName pkg
+ in UnitName fs