X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FPackageConfig.hs;h=e19a10dbc53fbee3e6395749e34e036a958a9811;hb=c5baccd2b0fc8b987f6c9145a68f06f1d73036bb;hp=b29e280e1c53e8ab0c4ace67dedb2e25e697d9c1;hpb=60b68fe41d8104cfc9fa2eff6d5454995eca4fc9;p=ghc-hetmet.git diff --git a/ghc/compiler/main/PackageConfig.hs b/ghc/compiler/main/PackageConfig.hs index b29e280..e19a10d 100644 --- a/ghc/compiler/main/PackageConfig.hs +++ b/ghc/compiler/main/PackageConfig.hs @@ -6,6 +6,7 @@ module PackageConfig ( -- * PackageId PackageId, mkPackageId, stringToPackageId, packageIdString, packageConfigId, + packageIdFS, fsToPackageId, -- * The PackageConfig type: information about a package PackageConfig, @@ -43,12 +44,21 @@ defaultPackageConfig = emptyInstalledPackageInfo -- -- A PackageId is a string of the form -. -type PackageId = FastString -- includes the version +newtype PackageId = PId FastString deriving( Eq, Ord ) -- includes the version -- easier not to use a newtype here, because we need instances of -- Binary & Outputable, and we're too early to define them +fsToPackageId :: FastString -> PackageId +fsToPackageId = PId + +packageIdFS :: PackageId -> FastString +packageIdFS (PId fs) = fs + stringToPackageId :: String -> PackageId -stringToPackageId = mkFastString +stringToPackageId = fsToPackageId . mkFastString + +packageIdString :: PackageId -> String +packageIdString = unpackFS . packageIdFS mkPackageId :: PackageIdentifier -> PackageId mkPackageId = stringToPackageId . showPackageId @@ -56,5 +66,4 @@ mkPackageId = stringToPackageId . showPackageId packageConfigId :: PackageConfig -> PackageId packageConfigId = mkPackageId . package -packageIdString :: PackageId -> String -packageIdString = unpackFS +