X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fprelude%2FPrelNames.lhs;h=9d314f769bdeb4e9e81f3e4fef965a825bb47e5b;hb=393220f6e889aa681f0751510df4b429d399305e;hp=baf3b50ecc7772eed705225eab353970a1afdab6;hpb=d46b38d86430c0c34250de8eb51e33f24c5eb71d;p=ghc-hetmet.git diff --git a/compiler/prelude/PrelNames.lhs b/compiler/prelude/PrelNames.lhs index baf3b50..9d314f7 100644 --- a/compiler/prelude/PrelNames.lhs +++ b/compiler/prelude/PrelNames.lhs @@ -57,8 +57,8 @@ module PrelNames ( #include "HsVersions.h" import Module -import OccName ( dataName, tcName, clsName, varName, mkOccNameFS, - mkVarOccFS ) +import OccName ( dataName, tcName, clsName, varName, tvName, + mkOccNameFS, mkVarOccFS ) import RdrName ( RdrName, nameRdrName, mkOrig, rdrNameOcc, mkUnqual ) import Unique ( Unique, Uniquable(..), hasKey, mkPreludeMiscIdUnique, mkPreludeDataConUnique, @@ -118,7 +118,7 @@ basicKnownKeyNames stringTyConName, ratioDataConName, ratioTyConName, - integerTyConName, smallIntegerDataConName, largeIntegerDataConName, + integerTyConName, smallIntegerName, -- Classes. *Must* include: -- classes that are grabbed by key (e.g., eqClassKey) @@ -175,12 +175,15 @@ basicKnownKeyNames -- Stable pointers newStablePtrName, + -- GHC Extensions + groupWithName, + -- Strings and lists unpackCStringName, unpackCStringAppendName, unpackCStringFoldrName, unpackCStringUtf8Name, -- List operations - concatName, filterName, + concatName, filterName, mapName, zipName, foldrName, buildName, augmentName, appendName, -- Parallel array operations @@ -233,12 +236,16 @@ genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName] --MetaHaskell Extension Add a new module here \begin{code} pRELUDE = mkBaseModule_ pRELUDE_NAME -gHC_PRIM = mkBaseModule FSLIT("GHC.Prim") -- Primitive types and values +gHC_PRIM = mkPrimModule FSLIT("GHC.Prim") -- Primitive types and values +gHC_BOOL = mkPrimModule FSLIT("GHC.Bool") +gHC_ORDERING = mkPrimModule FSLIT("GHC.Ordering") +gHC_GENERICS = mkPrimModule FSLIT("GHC.Generics") gHC_BASE = mkBaseModule FSLIT("GHC.Base") gHC_ENUM = mkBaseModule FSLIT("GHC.Enum") gHC_SHOW = mkBaseModule FSLIT("GHC.Show") gHC_READ = mkBaseModule FSLIT("GHC.Read") gHC_NUM = mkBaseModule FSLIT("GHC.Num") +gHC_INTEGER = mkIntegerModule FSLIT("GHC.Integer") gHC_LIST = mkBaseModule FSLIT("GHC.List") gHC_PARR = mkBaseModule FSLIT("GHC.PArr") dATA_TUP = mkBaseModule FSLIT("Data.Tuple") @@ -262,15 +269,15 @@ tYPEABLE = mkBaseModule FSLIT("Data.Typeable") gENERICS = mkBaseModule FSLIT("Data.Generics.Basics") dOTNET = mkBaseModule FSLIT("GHC.Dotnet") rEAD_PREC = mkBaseModule FSLIT("Text.ParserCombinators.ReadPrec") -lEX = mkBaseModule FSLIT("Text.Read.Lex") +lEX = mkBaseModule FSLIT("Text.Read.Lex") gHC_INT = mkBaseModule FSLIT("GHC.Int") gHC_WORD = mkBaseModule FSLIT("GHC.Word") mONAD = mkBaseModule FSLIT("Control.Monad") mONAD_FIX = mkBaseModule FSLIT("Control.Monad.Fix") aRROW = mkBaseModule FSLIT("Control.Arrow") -gHC_DESUGAR = mkBaseModule FSLIT("GHC.Desugar") +gHC_DESUGAR = mkBaseModule FSLIT("GHC.Desugar") rANDOM = mkBaseModule FSLIT("System.Random") -gLA_EXTS = mkBaseModule FSLIT("GHC.Exts") +gHC_EXTS = mkBaseModule FSLIT("GHC.Exts") mAIN = mkMainModule_ mAIN_NAME rOOT_MAIN = mkMainModule FSLIT(":Main") -- Root module for initialisation @@ -285,6 +292,12 @@ thFAKE = mkMainModule FSLIT(":THFake") pRELUDE_NAME = mkModuleNameFS FSLIT("Prelude") mAIN_NAME = mkModuleNameFS FSLIT("Main") +mkPrimModule :: FastString -> Module +mkPrimModule m = mkModule primPackageId (mkModuleNameFS m) + +mkIntegerModule :: FastString -> Module +mkIntegerModule m = mkModule integerPackageId (mkModuleNameFS m) + mkBaseModule :: FastString -> Module mkBaseModule m = mkModule basePackageId (mkModuleNameFS m) @@ -319,19 +332,24 @@ mkTupleModule Unboxed _ = gHC_PRIM %************************************************************************ \begin{code} -main_RDR_Unqual = mkUnqual varName FSLIT("main") +main_RDR_Unqual = mkUnqual varName FSLIT("main") -- We definitely don't want an Orig RdrName, because -- main might, in principle, be imported into module Main +forall_tv_RDR, dot_tv_RDR :: RdrName +forall_tv_RDR = mkUnqual tvName FSLIT("forall") +dot_tv_RDR = mkUnqual tvName FSLIT(".") + eq_RDR = nameRdrName eqName ge_RDR = nameRdrName geName ne_RDR = varQual_RDR gHC_BASE FSLIT("/=") le_RDR = varQual_RDR gHC_BASE FSLIT("<=") +lt_RDR = varQual_RDR gHC_BASE FSLIT("<") gt_RDR = varQual_RDR gHC_BASE FSLIT(">") compare_RDR = varQual_RDR gHC_BASE FSLIT("compare") -ltTag_RDR = dataQual_RDR gHC_BASE FSLIT("LT") -eqTag_RDR = dataQual_RDR gHC_BASE FSLIT("EQ") -gtTag_RDR = dataQual_RDR gHC_BASE FSLIT("GT") +ltTag_RDR = dataQual_RDR gHC_ORDERING FSLIT("LT") +eqTag_RDR = dataQual_RDR gHC_ORDERING FSLIT("EQ") +gtTag_RDR = dataQual_RDR gHC_ORDERING FSLIT("GT") eqClass_RDR = nameRdrName eqClassName numClass_RDR = nameRdrName numClassName @@ -431,10 +449,10 @@ mkTyConRep_RDR = varQual_RDR tYPEABLE FSLIT("mkTyCon") undefined_RDR = varQual_RDR gHC_ERR FSLIT("undefined") -crossDataCon_RDR = dataQual_RDR gHC_BASE FSLIT(":*:") -inlDataCon_RDR = dataQual_RDR gHC_BASE FSLIT("Inl") -inrDataCon_RDR = dataQual_RDR gHC_BASE FSLIT("Inr") -genUnitDataCon_RDR = dataQual_RDR gHC_BASE FSLIT("Unit") +crossDataCon_RDR = dataQual_RDR gHC_GENERICS FSLIT(":*:") +inlDataCon_RDR = dataQual_RDR gHC_GENERICS FSLIT("Inl") +inrDataCon_RDR = dataQual_RDR gHC_GENERICS FSLIT("Inr") +genUnitDataCon_RDR = dataQual_RDR gHC_GENERICS FSLIT("Unit") ---------------------- varQual_RDR mod str = mkOrig mod (mkOccNameFS varName str) @@ -460,16 +478,16 @@ and it's convenient to write them all down in one place. \begin{code} runMainIOName = varQual gHC_TOP_HANDLER FSLIT("runMainIO") runMainKey -orderingTyConName = tcQual gHC_BASE FSLIT("Ordering") orderingTyConKey +orderingTyConName = tcQual gHC_ORDERING FSLIT("Ordering") orderingTyConKey eitherTyConName = tcQual dATA_EITHER FSLIT("Either") eitherTyConKey leftDataConName = conName dATA_EITHER FSLIT("Left") leftDataConKey rightDataConName = conName dATA_EITHER FSLIT("Right") rightDataConKey -- Generics -crossTyConName = tcQual gHC_BASE FSLIT(":*:") crossTyConKey -plusTyConName = tcQual gHC_BASE FSLIT(":+:") plusTyConKey -genUnitTyConName = tcQual gHC_BASE FSLIT("Unit") genUnitTyConKey +crossTyConName = tcQual gHC_GENERICS FSLIT(":*:") crossTyConKey +plusTyConName = tcQual gHC_GENERICS FSLIT(":+:") plusTyConKey +genUnitTyConName = tcQual gHC_GENERICS FSLIT("Unit") genUnitTyConKey -- Base strings Strings unpackCStringName = varQual gHC_BASE FSLIT("unpackCString#") unpackCStringIdKey @@ -496,12 +514,16 @@ bindMName = methName gHC_BASE FSLIT(">>=") bindMClassOpKey returnMName = methName gHC_BASE FSLIT("return") returnMClassOpKey failMName = methName gHC_BASE FSLIT("fail") failMClassOpKey +-- Functions for GHC extensions +groupWithName = varQual gHC_EXTS FSLIT("groupWith") groupWithIdKey + -- Random PrelBase functions fromStringName = methName dATA_STRING FSLIT("fromString") fromStringClassOpKey otherwiseIdName = varQual gHC_BASE FSLIT("otherwise") otherwiseIdKey foldrName = varQual gHC_BASE FSLIT("foldr") foldrIdKey buildName = varQual gHC_BASE FSLIT("build") buildIdKey augmentName = varQual gHC_BASE FSLIT("augment") augmentIdKey +mapName = varQual gHC_BASE FSLIT("map") mapIdKey appendName = varQual gHC_BASE FSLIT("++") appendIdKey andName = varQual gHC_BASE FSLIT("&&") andIdKey orName = varQual gHC_BASE FSLIT("||") orIdKey @@ -536,11 +558,10 @@ numClassName = clsQual gHC_NUM FSLIT("Num") numClassKey fromIntegerName = methName gHC_NUM FSLIT("fromInteger") fromIntegerClassOpKey minusName = methName gHC_NUM FSLIT("-") minusClassOpKey negateName = methName gHC_NUM FSLIT("negate") negateClassOpKey -plusIntegerName = varQual gHC_NUM FSLIT("plusInteger") plusIntegerIdKey -timesIntegerName = varQual gHC_NUM FSLIT("timesInteger") timesIntegerIdKey -integerTyConName = tcQual gHC_NUM FSLIT("Integer") integerTyConKey -smallIntegerDataConName = conName gHC_NUM FSLIT("S#") smallIntegerDataConKey -largeIntegerDataConName = conName gHC_NUM FSLIT("J#") largeIntegerDataConKey +plusIntegerName = varQual gHC_INTEGER FSLIT("plusInteger") plusIntegerIdKey +timesIntegerName = varQual gHC_INTEGER FSLIT("timesInteger") timesIntegerIdKey +integerTyConName = tcQual gHC_INTEGER FSLIT("Integer") integerTyConKey +smallIntegerName = varQual gHC_INTEGER FSLIT("smallInteger") smallIntegerIdKey -- PrelReal types and classes rationalTyConName = tcQual gHC_REAL FSLIT("Rational") rationalTyConKey @@ -877,8 +898,6 @@ doubleDataConKey = mkPreludeDataConUnique 3 falseDataConKey = mkPreludeDataConUnique 4 floatDataConKey = mkPreludeDataConUnique 5 intDataConKey = mkPreludeDataConUnique 6 -smallIntegerDataConKey = mkPreludeDataConUnique 7 -largeIntegerDataConKey = mkPreludeDataConUnique 8 nilDataConKey = mkPreludeDataConUnique 11 ratioDataConKey = mkPreludeDataConUnique 12 stableNameDataConKey = mkPreludeDataConUnique 14 @@ -945,6 +964,7 @@ bindIOIdKey = mkPreludeMiscIdUnique 36 returnIOIdKey = mkPreludeMiscIdUnique 37 deRefStablePtrIdKey = mkPreludeMiscIdUnique 38 newStablePtrIdKey = mkPreludeMiscIdUnique 39 +smallIntegerIdKey = mkPreludeMiscIdUnique 40 plusIntegerIdKey = mkPreludeMiscIdUnique 41 timesIntegerIdKey = mkPreludeMiscIdUnique 42 printIdKey = mkPreludeMiscIdUnique 43 @@ -975,6 +995,9 @@ breakpointAutoJumpIdKey = mkPreludeMiscIdUnique 67 inlineIdKey = mkPreludeMiscIdUnique 68 +mapIdKey = mkPreludeMiscIdUnique 69 +groupWithIdKey = mkPreludeMiscIdUnique 70 + -- Parallel array functions singletonPIdKey = mkPreludeMiscIdUnique 79 nullPIdKey = mkPreludeMiscIdUnique 80