X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fprelude%2FPrelNames.lhs;h=98392906af025bbdbebde02ca8a85048f9c767d3;hp=ca63e965b98baf6059fb05a13bfd180bfea7275f;hb=a52f14894e48d47e62b5b33f7d7f4b3f2cc88a79;hpb=ae08a1e6d7b2ed19d312f035fa69c4297dd1756a diff --git a/compiler/prelude/PrelNames.lhs b/compiler/prelude/PrelNames.lhs index ca63e96..9839290 100644 --- a/compiler/prelude/PrelNames.lhs +++ b/compiler/prelude/PrelNames.lhs @@ -49,7 +49,8 @@ module PrelNames ( #include "HsVersions.h" -import Module ( Module, mkModule ) +import PackageConfig +import Module ( Module, ModuleName, mkModule, mkModuleNameFS ) import OccName ( dataName, tcName, clsName, varName, mkOccNameFS, mkVarOccFS ) import RdrName ( RdrName, nameRdrName, mkOrig, rdrNameOcc, mkUnqual ) @@ -59,8 +60,8 @@ import Unique ( Unique, Uniquable(..), hasKey, mkTupleTyConUnique ) import BasicTypes ( Boxity(..), Arity ) -import Name ( Name, mkInternalName, mkExternalName, nameModule ) -import SrcLoc ( noSrcLoc ) +import Name ( Name, mkInternalName, mkExternalName ) +import SrcLoc import FastString \end{code} @@ -74,14 +75,14 @@ import FastString This *local* name is used by the interactive stuff \begin{code} -itName uniq = mkInternalName uniq (mkOccNameFS varName FSLIT("it")) noSrcLoc +itName uniq = mkInternalName uniq (mkOccNameFS varName FSLIT("it")) noSrcSpan \end{code} \begin{code} -- mkUnboundName makes a place-holder Name; it shouldn't be looked at except possibly -- during compiler debugging. mkUnboundName :: RdrName -> Name -mkUnboundName rdr_name = mkInternalName unboundKey (rdrNameOcc rdr_name) noSrcLoc +mkUnboundName rdr_name = mkInternalName unboundKey (rdrNameOcc rdr_name) noSrcSpan isUnboundName :: Name -> Bool isUnboundName name = name `hasKey` unboundKey @@ -103,11 +104,13 @@ basicKnownKeyNames :: [Name] basicKnownKeyNames = genericTyConNames ++ typeableClassNames + ++ ndpNames ++ [ -- Type constructors (synonyms especially) ioTyConName, ioDataConName, runMainIOName, orderingTyConName, rationalTyConName, + stringTyConName, ratioDataConName, ratioTyConName, integerTyConName, smallIntegerDataConName, largeIntegerDataConName, @@ -129,11 +132,15 @@ basicKnownKeyNames realFracClassName, -- numeric realFloatClassName, -- numeric dataClassName, + isStringClassName, -- Numeric stuff negateName, minusName, fromRationalName, fromIntegerName, geName, eqName, + + -- String stuff + fromStringName, -- Enum stuff enumFromName, enumFromThenName, @@ -173,27 +180,25 @@ basicKnownKeyNames -- Parallel array operations nullPName, lengthPName, replicatePName, mapPName, - filterPName, zipPName, crossPName, indexPName, + filterPName, zipPName, crossMapPName, indexPName, toPName, bpermutePName, bpermuteDftPName, indexOfPName, -- FFI primitive types that are not wired-in. - stablePtrTyConName, ptrTyConName, funPtrTyConName, addrTyConName, + stablePtrTyConName, ptrTyConName, funPtrTyConName, int8TyConName, int16TyConName, int32TyConName, int64TyConName, wordTyConName, word8TyConName, word16TyConName, word32TyConName, word64TyConName, -- Others - otherwiseIdName, + otherwiseIdName, inlineIdName, plusIntegerName, timesIntegerName, - eqStringName, assertName, breakpointName, assertErrorName, - runSTRepName, + eqStringName, assertName, breakpointName, breakpointCondName, + breakpointAutoName, opaqueTyConName, + assertErrorName, runSTRepName, printName, fstName, sndName, -- MonadFix monadFixClassName, mfixName, - -- Splittable class - splittableClassName, splitName, - -- Other classes randomClassName, randomGenClassName, monadPlusClassName, @@ -210,6 +215,15 @@ basicKnownKeyNames genericTyConNames :: [Name] genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName] + +ndpNames :: [Name] +ndpNames = [ parrayTyConName, paTyConName, preprTyConName, prTyConName + , embedTyConName + , closureTyConName + , mkClosureName, applyClosureName + , mkClosurePName, applyClosurePName + , lengthPAName, replicatePAName, emptyPAName, packPAName, + combinePAName, intEqPAName ] \end{code} @@ -222,56 +236,81 @@ genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName] --MetaHaskell Extension Add a new module here \begin{code} -pRELUDE = mkModule "Prelude" -gHC_PRIM = mkModule "GHC.Prim" -- Primitive types and values -pREL_BASE = mkModule "GHC.Base" -pREL_ENUM = mkModule "GHC.Enum" -pREL_SHOW = mkModule "GHC.Show" -pREL_READ = mkModule "GHC.Read" -pREL_NUM = mkModule "GHC.Num" -pREL_LIST = mkModule "GHC.List" -pREL_PARR = mkModule "GHC.PArr" -pREL_TUP = mkModule "Data.Tuple" -pREL_EITHER = mkModule "Data.Either" -pREL_PACK = mkModule "GHC.Pack" -pREL_CONC = mkModule "GHC.Conc" -pREL_IO_BASE = mkModule "GHC.IOBase" -pREL_ST = mkModule "GHC.ST" -pREL_ARR = mkModule "GHC.Arr" -pREL_STABLE = mkModule "GHC.Stable" -pREL_ADDR = mkModule "GHC.Addr" -pREL_PTR = mkModule "GHC.Ptr" -pREL_ERR = mkModule "GHC.Err" -pREL_REAL = mkModule "GHC.Real" -pREL_FLOAT = mkModule "GHC.Float" -pREL_TOP_HANDLER= mkModule "GHC.TopHandler" -sYSTEM_IO = mkModule "System.IO" -dYNAMIC = mkModule "Data.Dynamic" -tYPEABLE = mkModule "Data.Typeable" -gENERICS = mkModule "Data.Generics.Basics" -dOTNET = mkModule "GHC.Dotnet" - -rEAD_PREC = mkModule "Text.ParserCombinators.ReadPrec" -lEX = mkModule "Text.Read.Lex" - -mAIN = mkModule "Main" -pREL_INT = mkModule "GHC.Int" -pREL_WORD = mkModule "GHC.Word" -mONAD = mkModule "Control.Monad" -mONAD_FIX = mkModule "Control.Monad.Fix" -aRROW = mkModule "Control.Arrow" -aDDR = mkModule "Addr" -rANDOM = mkModule "System.Random" - -gLA_EXTS = mkModule "GHC.Exts" -rOOT_MAIN = mkModule ":Main" -- Root module for initialisation +pRELUDE = mkBaseModule_ pRELUDE_NAME +gHC_PRIM = mkBaseModule FSLIT("GHC.Prim") -- Primitive types and values +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_LIST = mkBaseModule FSLIT("GHC.List") +gHC_PARR = mkBaseModule FSLIT("GHC.PArr") +dATA_TUP = mkBaseModule FSLIT("Data.Tuple") +dATA_EITHER = mkBaseModule FSLIT("Data.Either") +dATA_STRING = mkBaseModule FSLIT("Data.String") +gHC_PACK = mkBaseModule FSLIT("GHC.Pack") +gHC_CONC = mkBaseModule FSLIT("GHC.Conc") +gHC_IO_BASE = mkBaseModule FSLIT("GHC.IOBase") +gHC_ST = mkBaseModule FSLIT("GHC.ST") +gHC_ARR = mkBaseModule FSLIT("GHC.Arr") +gHC_STABLE = mkBaseModule FSLIT("GHC.Stable") +gHC_ADDR = mkBaseModule FSLIT("GHC.Addr") +gHC_PTR = mkBaseModule FSLIT("GHC.Ptr") +gHC_ERR = mkBaseModule FSLIT("GHC.Err") +gHC_REAL = mkBaseModule FSLIT("GHC.Real") +gHC_FLOAT = mkBaseModule FSLIT("GHC.Float") +gHC_TOP_HANDLER = mkBaseModule FSLIT("GHC.TopHandler") +sYSTEM_IO = mkBaseModule FSLIT("System.IO") +dYNAMIC = mkBaseModule FSLIT("Data.Dynamic") +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") +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") +rANDOM = mkBaseModule FSLIT("System.Random") +gLA_EXTS = mkBaseModule FSLIT("GHC.Exts") + +nDP_PARRAY = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.PArray") +nDP_REPR = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Repr") +nDP_UTILS = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Utils") +nDP_CLOSURE = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Closure") +nDP_INSTANCES = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Instances") + +mAIN = mkMainModule_ mAIN_NAME +rOOT_MAIN = mkMainModule FSLIT(":Main") -- Root module for initialisation + -- The ':xxx' makes a module name that the user can never -- use himself. The z-encoding for ':' is "ZC", so the z-encoded -- module name still starts with a capital letter, which keeps -- the z-encoded version consistent. +iNTERACTIVE = mkMainModule FSLIT(":Interactive") +thFAKE = mkMainModule FSLIT(":THFake") + +pRELUDE_NAME = mkModuleNameFS FSLIT("Prelude") +mAIN_NAME = mkModuleNameFS FSLIT("Main") + +mkBaseModule :: FastString -> Module +mkBaseModule m = mkModule basePackageId (mkModuleNameFS m) + +mkBaseModule_ :: ModuleName -> Module +mkBaseModule_ m = mkModule basePackageId m -iNTERACTIVE = mkModule ":Interactive" -thFAKE = mkModule ":THFake" +mkNDPModule :: FastString -> Module +mkNDPModule m = mkModule ndpPackageId (mkModuleNameFS m) + +mkNDPModule_ :: ModuleName -> Module +mkNDPModule_ m = mkModule ndpPackageId m + +mkMainModule :: FastString -> Module +mkMainModule m = mkModule mainPackageId (mkModuleNameFS m) + +mkMainModule_ :: ModuleName -> Module +mkMainModule_ m = mkModule mainPackageId m \end{code} %************************************************************************ @@ -282,8 +321,8 @@ thFAKE = mkModule ":THFake" \begin{code} mkTupleModule :: Boxity -> Arity -> Module -mkTupleModule Boxed 0 = pREL_BASE -mkTupleModule Boxed _ = pREL_TUP +mkTupleModule Boxed 0 = gHC_BASE +mkTupleModule Boxed _ = dATA_TUP mkTupleModule Unboxed _ = gHC_PRIM \end{code} @@ -301,13 +340,13 @@ main_RDR_Unqual = mkUnqual varName FSLIT("main") eq_RDR = nameRdrName eqName ge_RDR = nameRdrName geName -ne_RDR = varQual_RDR pREL_BASE FSLIT("/=") -le_RDR = varQual_RDR pREL_BASE FSLIT("<=") -gt_RDR = varQual_RDR pREL_BASE FSLIT(">") -compare_RDR = varQual_RDR pREL_BASE FSLIT("compare") -ltTag_RDR = dataQual_RDR pREL_BASE FSLIT("LT") -eqTag_RDR = dataQual_RDR pREL_BASE FSLIT("EQ") -gtTag_RDR = dataQual_RDR pREL_BASE FSLIT("GT") +ne_RDR = varQual_RDR gHC_BASE FSLIT("/=") +le_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") eqClass_RDR = nameRdrName eqClassName numClass_RDR = nameRdrName numClassName @@ -315,8 +354,8 @@ ordClass_RDR = nameRdrName ordClassName enumClass_RDR = nameRdrName enumClassName monadClass_RDR = nameRdrName monadClassName -map_RDR = varQual_RDR pREL_BASE FSLIT("map") -append_RDR = varQual_RDR pREL_BASE FSLIT("++") +map_RDR = varQual_RDR gHC_BASE FSLIT("map") +append_RDR = varQual_RDR gHC_BASE FSLIT("++") foldr_RDR = nameRdrName foldrName build_RDR = nameRdrName buildName @@ -329,8 +368,8 @@ and_RDR = nameRdrName andName left_RDR = nameRdrName leftDataConName right_RDR = nameRdrName rightDataConName -fromEnum_RDR = varQual_RDR pREL_ENUM FSLIT("fromEnum") -toEnum_RDR = varQual_RDR pREL_ENUM FSLIT("toEnum") +fromEnum_RDR = varQual_RDR gHC_ENUM FSLIT("fromEnum") +toEnum_RDR = varQual_RDR gHC_ENUM FSLIT("toEnum") enumFrom_RDR = nameRdrName enumFromName enumFromTo_RDR = nameRdrName enumFromToName @@ -349,8 +388,7 @@ unpackCStringFoldr_RDR = nameRdrName unpackCStringFoldrName unpackCStringUtf8_RDR = nameRdrName unpackCStringUtf8Name newStablePtr_RDR = nameRdrName newStablePtrName -addrDataCon_RDR = dataQual_RDR aDDR FSLIT("A#") -wordDataCon_RDR = dataQual_RDR pREL_WORD FSLIT("W#") +wordDataCon_RDR = dataQual_RDR gHC_WORD FSLIT("W#") bindIO_RDR = nameRdrName bindIOName returnIO_RDR = nameRdrName returnIOName @@ -358,31 +396,33 @@ returnIO_RDR = nameRdrName returnIOName fromInteger_RDR = nameRdrName fromIntegerName fromRational_RDR = nameRdrName fromRationalName minus_RDR = nameRdrName minusName -times_RDR = varQual_RDR pREL_NUM FSLIT("*") -plus_RDR = varQual_RDR pREL_NUM FSLIT("+") - -compose_RDR = varQual_RDR pREL_BASE FSLIT(".") - -not_RDR = varQual_RDR pREL_BASE FSLIT("not") -getTag_RDR = varQual_RDR pREL_BASE FSLIT("getTag") -succ_RDR = varQual_RDR pREL_ENUM FSLIT("succ") -pred_RDR = varQual_RDR pREL_ENUM FSLIT("pred") -minBound_RDR = varQual_RDR pREL_ENUM FSLIT("minBound") -maxBound_RDR = varQual_RDR pREL_ENUM FSLIT("maxBound") -range_RDR = varQual_RDR pREL_ARR FSLIT("range") -inRange_RDR = varQual_RDR pREL_ARR FSLIT("inRange") -index_RDR = varQual_RDR pREL_ARR FSLIT("index") -unsafeIndex_RDR = varQual_RDR pREL_ARR FSLIT("unsafeIndex") -unsafeRangeSize_RDR = varQual_RDR pREL_ARR FSLIT("unsafeRangeSize") - -readList_RDR = varQual_RDR pREL_READ FSLIT("readList") -readListDefault_RDR = varQual_RDR pREL_READ FSLIT("readListDefault") -readListPrec_RDR = varQual_RDR pREL_READ FSLIT("readListPrec") -readListPrecDefault_RDR = varQual_RDR pREL_READ FSLIT("readListPrecDefault") -readPrec_RDR = varQual_RDR pREL_READ FSLIT("readPrec") -parens_RDR = varQual_RDR pREL_READ FSLIT("parens") -choose_RDR = varQual_RDR pREL_READ FSLIT("choose") -lexP_RDR = varQual_RDR pREL_READ FSLIT("lexP") +times_RDR = varQual_RDR gHC_NUM FSLIT("*") +plus_RDR = varQual_RDR gHC_NUM FSLIT("+") + +fromString_RDR = nameRdrName fromStringName + +compose_RDR = varQual_RDR gHC_BASE FSLIT(".") + +not_RDR = varQual_RDR gHC_BASE FSLIT("not") +getTag_RDR = varQual_RDR gHC_BASE FSLIT("getTag") +succ_RDR = varQual_RDR gHC_ENUM FSLIT("succ") +pred_RDR = varQual_RDR gHC_ENUM FSLIT("pred") +minBound_RDR = varQual_RDR gHC_ENUM FSLIT("minBound") +maxBound_RDR = varQual_RDR gHC_ENUM FSLIT("maxBound") +range_RDR = varQual_RDR gHC_ARR FSLIT("range") +inRange_RDR = varQual_RDR gHC_ARR FSLIT("inRange") +index_RDR = varQual_RDR gHC_ARR FSLIT("index") +unsafeIndex_RDR = varQual_RDR gHC_ARR FSLIT("unsafeIndex") +unsafeRangeSize_RDR = varQual_RDR gHC_ARR FSLIT("unsafeRangeSize") + +readList_RDR = varQual_RDR gHC_READ FSLIT("readList") +readListDefault_RDR = varQual_RDR gHC_READ FSLIT("readListDefault") +readListPrec_RDR = varQual_RDR gHC_READ FSLIT("readListPrec") +readListPrecDefault_RDR = varQual_RDR gHC_READ FSLIT("readListPrecDefault") +readPrec_RDR = varQual_RDR gHC_READ FSLIT("readPrec") +parens_RDR = varQual_RDR gHC_READ FSLIT("parens") +choose_RDR = varQual_RDR gHC_READ FSLIT("choose") +lexP_RDR = varQual_RDR gHC_READ FSLIT("lexP") punc_RDR = dataQual_RDR lEX FSLIT("Punc") ident_RDR = dataQual_RDR lEX FSLIT("Ident") @@ -393,23 +433,23 @@ alt_RDR = varQual_RDR rEAD_PREC FSLIT("+++") reset_RDR = varQual_RDR rEAD_PREC FSLIT("reset") prec_RDR = varQual_RDR rEAD_PREC FSLIT("prec") -showList_RDR = varQual_RDR pREL_SHOW FSLIT("showList") -showList___RDR = varQual_RDR pREL_SHOW FSLIT("showList__") -showsPrec_RDR = varQual_RDR pREL_SHOW FSLIT("showsPrec") -showString_RDR = varQual_RDR pREL_SHOW FSLIT("showString") -showSpace_RDR = varQual_RDR pREL_SHOW FSLIT("showSpace") -showParen_RDR = varQual_RDR pREL_SHOW FSLIT("showParen") +showList_RDR = varQual_RDR gHC_SHOW FSLIT("showList") +showList___RDR = varQual_RDR gHC_SHOW FSLIT("showList__") +showsPrec_RDR = varQual_RDR gHC_SHOW FSLIT("showsPrec") +showString_RDR = varQual_RDR gHC_SHOW FSLIT("showString") +showSpace_RDR = varQual_RDR gHC_SHOW FSLIT("showSpace") +showParen_RDR = varQual_RDR gHC_SHOW FSLIT("showParen") typeOf_RDR = varQual_RDR tYPEABLE FSLIT("typeOf") mkTypeRep_RDR = varQual_RDR tYPEABLE FSLIT("mkTyConApp") mkTyConRep_RDR = varQual_RDR tYPEABLE FSLIT("mkTyCon") -undefined_RDR = varQual_RDR pREL_ERR FSLIT("undefined") +undefined_RDR = varQual_RDR gHC_ERR FSLIT("undefined") -crossDataCon_RDR = dataQual_RDR pREL_BASE FSLIT(":*:") -inlDataCon_RDR = dataQual_RDR pREL_BASE FSLIT("Inl") -inrDataCon_RDR = dataQual_RDR pREL_BASE FSLIT("Inr") -genUnitDataCon_RDR = dataQual_RDR pREL_BASE FSLIT("Unit") +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") ---------------------- varQual_RDR mod str = mkOrig mod (mkOccNameFS varName str) @@ -433,87 +473,106 @@ and it's convenient to write them all down in one place. \begin{code} -runMainIOName = varQual pREL_TOP_HANDLER FSLIT("runMainIO") runMainKey +runMainIOName = varQual gHC_TOP_HANDLER FSLIT("runMainIO") runMainKey -orderingTyConName = tcQual pREL_BASE FSLIT("Ordering") orderingTyConKey +orderingTyConName = tcQual gHC_BASE FSLIT("Ordering") orderingTyConKey -eitherTyConName = tcQual pREL_EITHER FSLIT("Either") eitherTyConKey -leftDataConName = conName eitherTyConName FSLIT("Left") leftDataConKey -rightDataConName = conName eitherTyConName FSLIT("Right") rightDataConKey +eitherTyConName = tcQual dATA_EITHER FSLIT("Either") eitherTyConKey +leftDataConName = conName dATA_EITHER FSLIT("Left") leftDataConKey +rightDataConName = conName dATA_EITHER FSLIT("Right") rightDataConKey -- Generics -crossTyConName = tcQual pREL_BASE FSLIT(":*:") crossTyConKey -plusTyConName = tcQual pREL_BASE FSLIT(":+:") plusTyConKey -genUnitTyConName = tcQual pREL_BASE FSLIT("Unit") genUnitTyConKey +crossTyConName = tcQual gHC_BASE FSLIT(":*:") crossTyConKey +plusTyConName = tcQual gHC_BASE FSLIT(":+:") plusTyConKey +genUnitTyConName = tcQual gHC_BASE FSLIT("Unit") genUnitTyConKey -- Base strings Strings -unpackCStringName = varQual pREL_BASE FSLIT("unpackCString#") unpackCStringIdKey -unpackCStringAppendName = varQual pREL_BASE FSLIT("unpackAppendCString#") unpackCStringAppendIdKey -unpackCStringFoldrName = varQual pREL_BASE FSLIT("unpackFoldrCString#") unpackCStringFoldrIdKey -unpackCStringUtf8Name = varQual pREL_BASE FSLIT("unpackCStringUtf8#") unpackCStringUtf8IdKey -eqStringName = varQual pREL_BASE FSLIT("eqString") eqStringIdKey +unpackCStringName = varQual gHC_BASE FSLIT("unpackCString#") unpackCStringIdKey +unpackCStringAppendName = varQual gHC_BASE FSLIT("unpackAppendCString#") unpackCStringAppendIdKey +unpackCStringFoldrName = varQual gHC_BASE FSLIT("unpackFoldrCString#") unpackCStringFoldrIdKey +unpackCStringUtf8Name = varQual gHC_BASE FSLIT("unpackCStringUtf8#") unpackCStringUtf8IdKey +eqStringName = varQual gHC_BASE FSLIT("eqString") eqStringIdKey +stringTyConName = tcQual gHC_BASE FSLIT("String") stringTyConKey + +-- The 'inline' function +inlineIdName = varQual gHC_BASE FSLIT("inline") inlineIdKey -- Base classes (Eq, Ord, Functor) -eqClassName = clsQual pREL_BASE FSLIT("Eq") eqClassKey -eqName = methName eqClassName FSLIT("==") eqClassOpKey -ordClassName = clsQual pREL_BASE FSLIT("Ord") ordClassKey -geName = methName ordClassName FSLIT(">=") geClassOpKey -functorClassName = clsQual pREL_BASE FSLIT("Functor") functorClassKey +eqClassName = clsQual gHC_BASE FSLIT("Eq") eqClassKey +eqName = methName gHC_BASE FSLIT("==") eqClassOpKey +ordClassName = clsQual gHC_BASE FSLIT("Ord") ordClassKey +geName = methName gHC_BASE FSLIT(">=") geClassOpKey +functorClassName = clsQual gHC_BASE FSLIT("Functor") functorClassKey -- Class Monad -monadClassName = clsQual pREL_BASE FSLIT("Monad") monadClassKey -thenMName = methName monadClassName FSLIT(">>") thenMClassOpKey -bindMName = methName monadClassName FSLIT(">>=") bindMClassOpKey -returnMName = methName monadClassName FSLIT("return") returnMClassOpKey -failMName = methName monadClassName FSLIT("fail") failMClassOpKey +monadClassName = clsQual gHC_BASE FSLIT("Monad") monadClassKey +thenMName = methName gHC_BASE FSLIT(">>") thenMClassOpKey +bindMName = methName gHC_BASE FSLIT(">>=") bindMClassOpKey +returnMName = methName gHC_BASE FSLIT("return") returnMClassOpKey +failMName = methName gHC_BASE FSLIT("fail") failMClassOpKey -- Random PrelBase functions -otherwiseIdName = varQual pREL_BASE FSLIT("otherwise") otherwiseIdKey -foldrName = varQual pREL_BASE FSLIT("foldr") foldrIdKey -buildName = varQual pREL_BASE FSLIT("build") buildIdKey -augmentName = varQual pREL_BASE FSLIT("augment") augmentIdKey -appendName = varQual pREL_BASE FSLIT("++") appendIdKey -andName = varQual pREL_BASE FSLIT("&&") andIdKey -orName = varQual pREL_BASE FSLIT("||") orIdKey -assertName = varQual pREL_BASE FSLIT("assert") assertIdKey -breakpointName = varQual pREL_BASE FSLIT("breakpoint") breakpointIdKey +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 +appendName = varQual gHC_BASE FSLIT("++") appendIdKey +andName = varQual gHC_BASE FSLIT("&&") andIdKey +orName = varQual gHC_BASE FSLIT("||") orIdKey +assertName = varQual gHC_BASE FSLIT("assert") assertIdKey +breakpointName = varQual gHC_BASE FSLIT("breakpoint") breakpointIdKey +breakpointCondName= varQual gHC_BASE FSLIT("breakpointCond") breakpointCondIdKey +breakpointAutoName= varQual gHC_BASE FSLIT("breakpointAuto") breakpointAutoIdKey +opaqueTyConName = tcQual gHC_BASE FSLIT("Opaque") opaqueTyConKey + breakpointJumpName = mkInternalName breakpointJumpIdKey (mkOccNameFS varName FSLIT("breakpointJump")) - noSrcLoc + noSrcSpan +breakpointCondJumpName + = mkInternalName + breakpointCondJumpIdKey + (mkOccNameFS varName FSLIT("breakpointCondJump")) + noSrcSpan +breakpointAutoJumpName + = mkInternalName + breakpointAutoJumpIdKey + (mkOccNameFS varName FSLIT("breakpointAutoJump")) + noSrcSpan -- PrelTup -fstName = varQual pREL_TUP FSLIT("fst") fstIdKey -sndName = varQual pREL_TUP FSLIT("snd") sndIdKey +fstName = varQual dATA_TUP FSLIT("fst") fstIdKey +sndName = varQual dATA_TUP FSLIT("snd") sndIdKey -- Module PrelNum -numClassName = clsQual pREL_NUM FSLIT("Num") numClassKey -fromIntegerName = methName numClassName FSLIT("fromInteger") fromIntegerClassOpKey -minusName = methName numClassName FSLIT("-") minusClassOpKey -negateName = methName numClassName FSLIT("negate") negateClassOpKey -plusIntegerName = varQual pREL_NUM FSLIT("plusInteger") plusIntegerIdKey -timesIntegerName = varQual pREL_NUM FSLIT("timesInteger") timesIntegerIdKey -integerTyConName = tcQual pREL_NUM FSLIT("Integer") integerTyConKey -smallIntegerDataConName = conName integerTyConName FSLIT("S#") smallIntegerDataConKey -largeIntegerDataConName = conName integerTyConName FSLIT("J#") largeIntegerDataConKey +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 -- PrelReal types and classes -rationalTyConName = tcQual pREL_REAL FSLIT("Rational") rationalTyConKey -ratioTyConName = tcQual pREL_REAL FSLIT("Ratio") ratioTyConKey -ratioDataConName = conName ratioTyConName FSLIT(":%") ratioDataConKey -realClassName = clsQual pREL_REAL FSLIT("Real") realClassKey -integralClassName = clsQual pREL_REAL FSLIT("Integral") integralClassKey -realFracClassName = clsQual pREL_REAL FSLIT("RealFrac") realFracClassKey -fractionalClassName = clsQual pREL_REAL FSLIT("Fractional") fractionalClassKey -fromRationalName = methName fractionalClassName FSLIT("fromRational") fromRationalClassOpKey +rationalTyConName = tcQual gHC_REAL FSLIT("Rational") rationalTyConKey +ratioTyConName = tcQual gHC_REAL FSLIT("Ratio") ratioTyConKey +ratioDataConName = conName gHC_REAL FSLIT(":%") ratioDataConKey +realClassName = clsQual gHC_REAL FSLIT("Real") realClassKey +integralClassName = clsQual gHC_REAL FSLIT("Integral") integralClassKey +realFracClassName = clsQual gHC_REAL FSLIT("RealFrac") realFracClassKey +fractionalClassName = clsQual gHC_REAL FSLIT("Fractional") fractionalClassKey +fromRationalName = methName gHC_REAL FSLIT("fromRational") fromRationalClassOpKey -- PrelFloat classes -floatingClassName = clsQual pREL_FLOAT FSLIT("Floating") floatingClassKey -realFloatClassName = clsQual pREL_FLOAT FSLIT("RealFloat") realFloatClassKey +floatingClassName = clsQual gHC_FLOAT FSLIT("Floating") floatingClassKey +realFloatClassName = clsQual gHC_FLOAT FSLIT("RealFloat") realFloatClassKey -- Class Ix -ixClassName = clsQual pREL_ARR FSLIT("Ix") ixClassKey +ixClassName = clsQual gHC_ARR FSLIT("Ix") ixClassKey -- Class Typeable typeableClassName = clsQual tYPEABLE FSLIT("Typeable") typeableClassKey @@ -533,89 +592,82 @@ typeableClassNames = [ typeableClassName, typeable1ClassName, typeable2ClassNam dataClassName = clsQual gENERICS FSLIT("Data") dataClassKey -- Error module -assertErrorName = varQual pREL_ERR FSLIT("assertError") assertErrorIdKey +assertErrorName = varQual gHC_ERR FSLIT("assertError") assertErrorIdKey -- Enum module (Enum, Bounded) -enumClassName = clsQual pREL_ENUM FSLIT("Enum") enumClassKey -enumFromName = methName enumClassName FSLIT("enumFrom") enumFromClassOpKey -enumFromToName = methName enumClassName FSLIT("enumFromTo") enumFromToClassOpKey -enumFromThenName = methName enumClassName FSLIT("enumFromThen") enumFromThenClassOpKey -enumFromThenToName = methName enumClassName FSLIT("enumFromThenTo") enumFromThenToClassOpKey -boundedClassName = clsQual pREL_ENUM FSLIT("Bounded") boundedClassKey +enumClassName = clsQual gHC_ENUM FSLIT("Enum") enumClassKey +enumFromName = methName gHC_ENUM FSLIT("enumFrom") enumFromClassOpKey +enumFromToName = methName gHC_ENUM FSLIT("enumFromTo") enumFromToClassOpKey +enumFromThenName = methName gHC_ENUM FSLIT("enumFromThen") enumFromThenClassOpKey +enumFromThenToName = methName gHC_ENUM FSLIT("enumFromThenTo") enumFromThenToClassOpKey +boundedClassName = clsQual gHC_ENUM FSLIT("Bounded") boundedClassKey -- List functions -concatName = varQual pREL_LIST FSLIT("concat") concatIdKey -filterName = varQual pREL_LIST FSLIT("filter") filterIdKey -zipName = varQual pREL_LIST FSLIT("zip") zipIdKey +concatName = varQual gHC_LIST FSLIT("concat") concatIdKey +filterName = varQual gHC_LIST FSLIT("filter") filterIdKey +zipName = varQual gHC_LIST FSLIT("zip") zipIdKey -- Class Show -showClassName = clsQual pREL_SHOW FSLIT("Show") showClassKey +showClassName = clsQual gHC_SHOW FSLIT("Show") showClassKey -- Class Read -readClassName = clsQual pREL_READ FSLIT("Read") readClassKey +readClassName = clsQual gHC_READ FSLIT("Read") readClassKey -- parallel array types and functions -enumFromToPName = varQual pREL_PARR FSLIT("enumFromToP") enumFromToPIdKey -enumFromThenToPName= varQual pREL_PARR FSLIT("enumFromThenToP") enumFromThenToPIdKey -nullPName = varQual pREL_PARR FSLIT("nullP") nullPIdKey -lengthPName = varQual pREL_PARR FSLIT("lengthP") lengthPIdKey -replicatePName = varQual pREL_PARR FSLIT("replicateP") replicatePIdKey -mapPName = varQual pREL_PARR FSLIT("mapP") mapPIdKey -filterPName = varQual pREL_PARR FSLIT("filterP") filterPIdKey -zipPName = varQual pREL_PARR FSLIT("zipP") zipPIdKey -crossPName = varQual pREL_PARR FSLIT("crossP") crossPIdKey -indexPName = varQual pREL_PARR FSLIT("!:") indexPIdKey -toPName = varQual pREL_PARR FSLIT("toP") toPIdKey -bpermutePName = varQual pREL_PARR FSLIT("bpermuteP") bpermutePIdKey -bpermuteDftPName = varQual pREL_PARR FSLIT("bpermuteDftP") bpermuteDftPIdKey -indexOfPName = varQual pREL_PARR FSLIT("indexOfP") indexOfPIdKey +enumFromToPName = varQual gHC_PARR FSLIT("enumFromToP") enumFromToPIdKey +enumFromThenToPName= varQual gHC_PARR FSLIT("enumFromThenToP") enumFromThenToPIdKey +nullPName = varQual gHC_PARR FSLIT("nullP") nullPIdKey +lengthPName = varQual gHC_PARR FSLIT("lengthP") lengthPIdKey +replicatePName = varQual gHC_PARR FSLIT("replicateP") replicatePIdKey +mapPName = varQual gHC_PARR FSLIT("mapP") mapPIdKey +filterPName = varQual gHC_PARR FSLIT("filterP") filterPIdKey +zipPName = varQual gHC_PARR FSLIT("zipP") zipPIdKey +crossMapPName = varQual gHC_PARR FSLIT("crossMapP") crossMapPIdKey +indexPName = varQual gHC_PARR FSLIT("!:") indexPIdKey +toPName = varQual gHC_PARR FSLIT("toP") toPIdKey +bpermutePName = varQual gHC_PARR FSLIT("bpermuteP") bpermutePIdKey +bpermuteDftPName = varQual gHC_PARR FSLIT("bpermuteDftP") bpermuteDftPIdKey +indexOfPName = varQual gHC_PARR FSLIT("indexOfP") indexOfPIdKey -- IOBase things -ioTyConName = tcQual pREL_IO_BASE FSLIT("IO") ioTyConKey -ioDataConName = conName ioTyConName FSLIT("IO") ioDataConKey -thenIOName = varQual pREL_IO_BASE FSLIT("thenIO") thenIOIdKey -bindIOName = varQual pREL_IO_BASE FSLIT("bindIO") bindIOIdKey -returnIOName = varQual pREL_IO_BASE FSLIT("returnIO") returnIOIdKey -failIOName = varQual pREL_IO_BASE FSLIT("failIO") failIOIdKey +ioTyConName = tcQual gHC_IO_BASE FSLIT("IO") ioTyConKey +ioDataConName = conName gHC_IO_BASE FSLIT("IO") ioDataConKey +thenIOName = varQual gHC_IO_BASE FSLIT("thenIO") thenIOIdKey +bindIOName = varQual gHC_IO_BASE FSLIT("bindIO") bindIOIdKey +returnIOName = varQual gHC_IO_BASE FSLIT("returnIO") returnIOIdKey +failIOName = varQual gHC_IO_BASE FSLIT("failIO") failIOIdKey -- IO things printName = varQual sYSTEM_IO FSLIT("print") printIdKey -- Int, Word, and Addr things -int8TyConName = tcQual pREL_INT FSLIT("Int8") int8TyConKey -int16TyConName = tcQual pREL_INT FSLIT("Int16") int16TyConKey -int32TyConName = tcQual pREL_INT FSLIT("Int32") int32TyConKey -int64TyConName = tcQual pREL_INT FSLIT("Int64") int64TyConKey +int8TyConName = tcQual gHC_INT FSLIT("Int8") int8TyConKey +int16TyConName = tcQual gHC_INT FSLIT("Int16") int16TyConKey +int32TyConName = tcQual gHC_INT FSLIT("Int32") int32TyConKey +int64TyConName = tcQual gHC_INT FSLIT("Int64") int64TyConKey -- Word module -word8TyConName = tcQual pREL_WORD FSLIT("Word8") word8TyConKey -word16TyConName = tcQual pREL_WORD FSLIT("Word16") word16TyConKey -word32TyConName = tcQual pREL_WORD FSLIT("Word32") word32TyConKey -word64TyConName = tcQual pREL_WORD FSLIT("Word64") word64TyConKey -wordTyConName = tcQual pREL_WORD FSLIT("Word") wordTyConKey -wordDataConName = conName wordTyConName FSLIT("W#") wordDataConKey - --- Addr module -addrTyConName = tcQual aDDR FSLIT("Addr") addrTyConKey +word8TyConName = tcQual gHC_WORD FSLIT("Word8") word8TyConKey +word16TyConName = tcQual gHC_WORD FSLIT("Word16") word16TyConKey +word32TyConName = tcQual gHC_WORD FSLIT("Word32") word32TyConKey +word64TyConName = tcQual gHC_WORD FSLIT("Word64") word64TyConKey +wordTyConName = tcQual gHC_WORD FSLIT("Word") wordTyConKey +wordDataConName = conName gHC_WORD FSLIT("W#") wordDataConKey -- PrelPtr module -ptrTyConName = tcQual pREL_PTR FSLIT("Ptr") ptrTyConKey -funPtrTyConName = tcQual pREL_PTR FSLIT("FunPtr") funPtrTyConKey +ptrTyConName = tcQual gHC_PTR FSLIT("Ptr") ptrTyConKey +funPtrTyConName = tcQual gHC_PTR FSLIT("FunPtr") funPtrTyConKey -- Foreign objects and weak pointers -stablePtrTyConName = tcQual pREL_STABLE FSLIT("StablePtr") stablePtrTyConKey -newStablePtrName = varQual pREL_STABLE FSLIT("newStablePtr") newStablePtrIdKey +stablePtrTyConName = tcQual gHC_STABLE FSLIT("StablePtr") stablePtrTyConKey +newStablePtrName = varQual gHC_STABLE FSLIT("newStablePtr") newStablePtrIdKey -- PrelST module -runSTRepName = varQual pREL_ST FSLIT("runSTRep") runSTRepIdKey - --- The "split" Id for splittable implicit parameters -splittableClassName = clsQual gLA_EXTS FSLIT("Splittable") splittableClassKey -splitName = methName splittableClassName FSLIT("split") splitIdKey +runSTRepName = varQual gHC_ST FSLIT("runSTRep") runSTRepIdKey -- Recursive-do notation monadFixClassName = clsQual mONAD_FIX FSLIT("MonadFix") monadFixClassKey -mfixName = methName monadFixClassName FSLIT("mfix") mfixIdKey +mfixName = methName mONAD_FIX FSLIT("mfix") mfixIdKey -- Arrow notation arrAName = varQual aRROW FSLIT("arr") arrAIdKey @@ -629,6 +681,7 @@ loopAName = varQual aRROW FSLIT("loop") loopAIdKey monadPlusClassName = clsQual mONAD FSLIT("MonadPlus") monadPlusClassKey randomClassName = clsQual rANDOM FSLIT("Random") randomClassKey randomGenClassName = clsQual rANDOM FSLIT("RandomGen") randomGenClassKey +isStringClassName = clsQual dATA_STRING FSLIT("IsString") isStringClassKey -- dotnet interop objectTyConName = tcQual dOTNET FSLIT("Object") objectTyConKey @@ -639,6 +692,24 @@ marshalObjectName = varQual dOTNET FSLIT("marshalObject") marshalObjectIdKey marshalStringName = varQual dOTNET FSLIT("marshalString") marshalStringIdKey unmarshalStringName = varQual dOTNET FSLIT("unmarshalString") unmarshalStringIdKey checkDotnetResName = varQual dOTNET FSLIT("checkResult") checkDotnetResNameIdKey + +-- NDP stuff +parrayTyConName = tcQual nDP_PARRAY FSLIT("PArray") parrayTyConKey +paTyConName = tcQual nDP_PARRAY FSLIT("PA") paTyConKey +preprTyConName = tcQual nDP_PARRAY FSLIT("PRepr") preprTyConKey +prTyConName = clsQual nDP_PARRAY FSLIT("PR") prTyConKey +embedTyConName = tcQual nDP_REPR FSLIT("Embed") embedTyConKey +lengthPAName = varQual nDP_PARRAY FSLIT("lengthPA") lengthPAIdKey +replicatePAName = varQual nDP_PARRAY FSLIT("replicatePA") replicatePAIdKey +emptyPAName = varQual nDP_PARRAY FSLIT("emptyPA") emptyPAIdKey +packPAName = varQual nDP_PARRAY FSLIT("packPA") packPAIdKey +combinePAName = varQual nDP_PARRAY FSLIT("combinePA") combinePAIdKey +intEqPAName = varQual nDP_UTILS FSLIT("intEqPA") intEqPAIdKey +closureTyConName = tcQual nDP_CLOSURE FSLIT(":->") closureTyConKey +mkClosureName = varQual nDP_CLOSURE FSLIT("mkClosure") mkClosureIdKey +applyClosureName = varQual nDP_CLOSURE FSLIT("$:") applyClosureIdKey +mkClosurePName = varQual nDP_CLOSURE FSLIT("mkClosureP") mkClosurePIdKey +applyClosurePName = varQual nDP_CLOSURE FSLIT("$:^") applyClosurePIdKey \end{code} %************************************************************************ @@ -655,18 +726,15 @@ tcQual = mk_known_key_name tcName clsQual = mk_known_key_name clsName mk_known_key_name space mod str uniq - = mkExternalName uniq mod (mkOccNameFS space str) - Nothing noSrcLoc - -conName :: Name -> FastString -> Unique -> Name -conName tycon occ uniq - = mkExternalName uniq (nameModule tycon) (mkOccNameFS dataName occ) - (Just tycon) noSrcLoc - -methName :: Name -> FastString -> Unique -> Name -methName cls occ uniq - = mkExternalName uniq (nameModule cls) (mkVarOccFS occ) - (Just cls) noSrcLoc + = mkExternalName uniq mod (mkOccNameFS space str) noSrcSpan + +conName :: Module -> FastString -> Unique -> Name +conName mod occ uniq + = mkExternalName uniq mod (mkOccNameFS dataName occ) noSrcSpan + +methName :: Module -> FastString -> Unique -> Name +methName mod occ uniq + = mkExternalName uniq mod (mkVarOccFS occ) noSrcSpan \end{code} %************************************************************************ @@ -705,11 +773,12 @@ typeable6ClassKey = mkPreludeClassUnique 26 typeable7ClassKey = mkPreludeClassUnique 27 monadFixClassKey = mkPreludeClassUnique 28 -splittableClassKey = mkPreludeClassUnique 29 monadPlusClassKey = mkPreludeClassUnique 30 randomClassKey = mkPreludeClassUnique 31 randomGenClassKey = mkPreludeClassUnique 32 + +isStringClassKey = mkPreludeClassUnique 33 \end{code} %************************************************************************ @@ -720,7 +789,6 @@ randomGenClassKey = mkPreludeClassUnique 32 \begin{code} addrPrimTyConKey = mkPreludeTyConUnique 1 -addrTyConKey = mkPreludeTyConUnique 2 arrayPrimTyConKey = mkPreludeTyConUnique 3 boolTyConKey = mkPreludeTyConUnique 4 byteArrayPrimTyConKey = mkPreludeTyConUnique 5 @@ -752,6 +820,10 @@ rationalTyConKey = mkPreludeTyConUnique 33 realWorldTyConKey = mkPreludeTyConUnique 34 stablePtrPrimTyConKey = mkPreludeTyConUnique 35 stablePtrTyConKey = mkPreludeTyConUnique 36 + +anyPrimTyConKey = mkPreludeTyConUnique 37 +anyPrimTyCon1Key = mkPreludeTyConUnique 38 + statePrimTyConKey = mkPreludeTyConUnique 50 stableNamePrimTyConKey = mkPreludeTyConUnique 51 stableNameTyConKey = mkPreludeTyConUnique 52 @@ -790,6 +862,41 @@ objectTyConKey = mkPreludeTyConUnique 83 eitherTyConKey = mkPreludeTyConUnique 84 +-- Super Kinds constructors +tySuperKindTyConKey = mkPreludeTyConUnique 85 +coSuperKindTyConKey = mkPreludeTyConUnique 86 + +-- Kind constructors +liftedTypeKindTyConKey = mkPreludeTyConUnique 87 +openTypeKindTyConKey = mkPreludeTyConUnique 88 +unliftedTypeKindTyConKey = mkPreludeTyConUnique 89 +ubxTupleKindTyConKey = mkPreludeTyConUnique 90 +argTypeKindTyConKey = mkPreludeTyConUnique 91 + +-- Coercion constructors +symCoercionTyConKey = mkPreludeTyConUnique 93 +transCoercionTyConKey = mkPreludeTyConUnique 94 +leftCoercionTyConKey = mkPreludeTyConUnique 95 +rightCoercionTyConKey = mkPreludeTyConUnique 96 +instCoercionTyConKey = mkPreludeTyConUnique 97 +unsafeCoercionTyConKey = mkPreludeTyConUnique 98 + +unknownTyConKey = mkPreludeTyConUnique 99 +unknown1TyConKey = mkPreludeTyConUnique 130 +unknown2TyConKey = mkPreludeTyConUnique 131 +unknown3TyConKey = mkPreludeTyConUnique 132 +opaqueTyConKey = mkPreludeTyConUnique 133 + +stringTyConKey = mkPreludeTyConUnique 134 + +parrayTyConKey = mkPreludeTyConUnique 135 +closureTyConKey = mkPreludeTyConUnique 136 +paTyConKey = mkPreludeTyConUnique 137 +preprTyConKey = mkPreludeTyConUnique 138 +embedTyConKey = mkPreludeTyConUnique 139 +prTyConKey = mkPreludeTyConUnique 140 + + ---------------- Template Haskell ------------------- -- USES TyConUniques 100-129 ----------------------------------------------------- @@ -884,7 +991,6 @@ printIdKey = mkPreludeMiscIdUnique 43 failIOIdKey = mkPreludeMiscIdUnique 44 nullAddrIdKey = mkPreludeMiscIdUnique 46 voidArgIdKey = mkPreludeMiscIdUnique 47 -splitIdKey = mkPreludeMiscIdUnique 48 fstIdKey = mkPreludeMiscIdUnique 49 sndIdKey = mkPreludeMiscIdUnique 50 otherwiseIdKey = mkPreludeMiscIdUnique 51 @@ -901,7 +1007,13 @@ lazyIdKey = mkPreludeMiscIdUnique 60 assertErrorIdKey = mkPreludeMiscIdUnique 61 breakpointIdKey = mkPreludeMiscIdUnique 62 -breakpointJumpIdKey = mkPreludeMiscIdUnique 63 +breakpointCondIdKey = mkPreludeMiscIdUnique 63 +breakpointAutoIdKey = mkPreludeMiscIdUnique 64 +breakpointJumpIdKey = mkPreludeMiscIdUnique 65 +breakpointCondJumpIdKey = mkPreludeMiscIdUnique 66 +breakpointAutoJumpIdKey = mkPreludeMiscIdUnique 67 + +inlineIdKey = mkPreludeMiscIdUnique 68 -- Parallel array functions nullPIdKey = mkPreludeMiscIdUnique 80 @@ -910,7 +1022,7 @@ replicatePIdKey = mkPreludeMiscIdUnique 82 mapPIdKey = mkPreludeMiscIdUnique 83 filterPIdKey = mkPreludeMiscIdUnique 84 zipPIdKey = mkPreludeMiscIdUnique 85 -crossPIdKey = mkPreludeMiscIdUnique 86 +crossMapPIdKey = mkPreludeMiscIdUnique 86 indexPIdKey = mkPreludeMiscIdUnique 87 toPIdKey = mkPreludeMiscIdUnique 88 enumFromToPIdKey = mkPreludeMiscIdUnique 89 @@ -962,6 +1074,21 @@ appAIdKey = mkPreludeMiscIdUnique 122 choiceAIdKey = mkPreludeMiscIdUnique 123 -- ||| loopAIdKey = mkPreludeMiscIdUnique 124 +fromStringClassOpKey = mkPreludeMiscIdUnique 125 + +-- Flattened parallel array functions +mkClosureIdKey = mkPreludeMiscIdUnique 126 +applyClosureIdKey = mkPreludeMiscIdUnique 127 +mkClosurePIdKey = mkPreludeMiscIdUnique 128 +applyClosurePIdKey = mkPreludeMiscIdUnique 129 +closurePAIdKey = mkPreludeMiscIdUnique 130 +lengthPAIdKey = mkPreludeMiscIdUnique 131 +replicatePAIdKey = mkPreludeMiscIdUnique 132 +emptyPAIdKey = mkPreludeMiscIdUnique 133 +packPAIdKey = mkPreludeMiscIdUnique 134 +combinePAIdKey = mkPreludeMiscIdUnique 135 +intEqPAIdKey = mkPreludeMiscIdUnique 136 + ---------------- Template Haskell ------------------- -- USES IdUniques 200-399 ----------------------------------------------------- @@ -976,29 +1103,12 @@ loopAIdKey = mkPreludeMiscIdUnique 124 \begin{code} numericTyKeys = - [ addrTyConKey - , wordTyConKey + [ wordTyConKey , intTyConKey , integerTyConKey , doubleTyConKey , floatTyConKey ] - - -- Renamer always imports these data decls replete with constructors - -- so that desugarer can always see their constructors. Ugh! -cCallishTyKeys = - [ addrTyConKey - , wordTyConKey - , stablePtrTyConKey - , int8TyConKey - , int16TyConKey - , int32TyConKey - , int64TyConKey - , word8TyConKey - , word16TyConKey - , word32TyConKey - , word64TyConKey - ] \end{code} @@ -1038,7 +1148,9 @@ needsDataDeclCtxtClassKeys = -- see comments in TcDeriv standardClassKeys = derivableClassKeys ++ numericClassKeys ++ [randomClassKey, randomGenClassKey, functorClassKey, - monadClassKey, monadPlusClassKey] + monadClassKey, monadPlusClassKey, + isStringClassKey + ] \end{code} @derivableClassKeys@ is also used in checking \tr{deriving} constructs