X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fprelude%2FPrelNames.lhs;h=bf464653175d8a3d81d94a7fe4718e798e4da075;hb=6c095bfa3c8c81b52ad92853acd326453d320d7b;hp=8cc24248264fe1189a7ee44b01d97792735e22ea;hpb=aa9a4f1053d3c554629a2ec25955e7530c95b892;p=ghc-hetmet.git diff --git a/compiler/prelude/PrelNames.lhs b/compiler/prelude/PrelNames.lhs index 8cc2424..bf46465 100644 --- a/compiler/prelude/PrelNames.lhs +++ b/compiler/prelude/PrelNames.lhs @@ -182,7 +182,7 @@ basicKnownKeyNames -- Parallel array operations nullPName, lengthPName, replicatePName, singletonPName, mapPName, filterPName, zipPName, crossMapPName, indexPName, - toPName, bpermutePName, bpermuteDftPName, indexOfPName, + toPName, emptyPName, appPName, -- FFI primitive types that are not wired-in. stablePtrTyConName, ptrTyConName, funPtrTyConName, @@ -203,6 +203,9 @@ basicKnownKeyNames -- Other classes randomClassName, randomGenClassName, monadPlusClassName, + -- Annotation type checking + toAnnotationWrapperName, + -- Booleans andName, orName @@ -231,27 +234,31 @@ genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName] pRELUDE :: Module pRELUDE = mkBaseModule_ pRELUDE_NAME -gHC_PRIM, gHC_BOOL, gHC_UNIT, gHC_ORDERING, gHC_GENERICS, gHC_BASE, gHC_ENUM, - gHC_SHOW, gHC_READ, gHC_NUM, gHC_INTEGER, gHC_LIST, gHC_PARR, - dATA_TUP, dATA_EITHER, dATA_STRING, gHC_PACK, gHC_CONC, gHC_IO_BASE, +gHC_PRIM, gHC_TYPES, gHC_BOOL, gHC_UNIT, gHC_ORDERING, gHC_GENERICS, gHC_CLASSES, gHC_BASE, gHC_ENUM, + gHC_SHOW, gHC_READ, gHC_NUM, gHC_INTEGER, gHC_INTEGER_INTERNALS, gHC_LIST, gHC_PARR, + gHC_TUPLE, dATA_TUPLE, dATA_EITHER, dATA_STRING, gHC_PACK, gHC_CONC, gHC_IO_BASE, gHC_ST, gHC_ARR, gHC_STABLE, gHC_ADDR, gHC_PTR, gHC_ERR, gHC_REAL, gHC_FLOAT, gHC_TOP_HANDLER, sYSTEM_IO, dYNAMIC, tYPEABLE, gENERICS, dOTNET, rEAD_PREC, lEX, gHC_INT, gHC_WORD, mONAD, mONAD_FIX, aRROW, - gHC_DESUGAR, rANDOM, gHC_EXTS, cONTROL_EXCEPTION :: Module + gHC_DESUGAR, rANDOM, gHC_EXTS, cONTROL_EXCEPTION_BASE :: Module gHC_PRIM = mkPrimModule (fsLit "GHC.Prim") -- Primitive types and values +gHC_TYPES = mkPrimModule (fsLit "GHC.Types") gHC_UNIT = mkPrimModule (fsLit "GHC.Unit") gHC_BOOL = mkPrimModule (fsLit "GHC.Bool") gHC_ORDERING = mkPrimModule (fsLit "GHC.Ordering") gHC_GENERICS = mkPrimModule (fsLit "GHC.Generics") +gHC_CLASSES = mkBaseModule (fsLit "GHC.Classes") 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_INTEGER_INTERNALS = mkIntegerModule (fsLit "GHC.Integer.Internals") gHC_LIST = mkBaseModule (fsLit "GHC.List") gHC_PARR = mkBaseModule (fsLit "GHC.PArr") -dATA_TUP = mkBaseModule (fsLit "Data.Tuple") +gHC_TUPLE = mkPrimModule (fsLit "GHC.Tuple") +dATA_TUPLE = mkBaseModule (fsLit "Data.Tuple") dATA_EITHER = mkBaseModule (fsLit "Data.Either") dATA_STRING = mkBaseModule (fsLit "Data.String") gHC_PACK = mkBaseModule (fsLit "GHC.Pack") @@ -269,7 +276,7 @@ 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") +gENERICS = mkBaseModule (fsLit "Data.Data") dOTNET = mkBaseModule (fsLit "GHC.Dotnet") rEAD_PREC = mkBaseModule (fsLit "Text.ParserCombinators.ReadPrec") lEX = mkBaseModule (fsLit "Text.Read.Lex") @@ -281,7 +288,7 @@ aRROW = mkBaseModule (fsLit "Control.Arrow") gHC_DESUGAR = mkBaseModule (fsLit "GHC.Desugar") rANDOM = mkBaseModule (fsLit "System.Random") gHC_EXTS = mkBaseModule (fsLit "GHC.Exts") -cONTROL_EXCEPTION = mkBaseModule (fsLit "Control.Exception") +cONTROL_EXCEPTION_BASE = mkBaseModule (fsLit "Control.Exception.Base") mAIN, rOOT_MAIN :: Module mAIN = mkMainModule_ mAIN_NAME @@ -291,9 +298,8 @@ rOOT_MAIN = mkMainModule (fsLit ":Main") -- Root module for initialisation -- 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, thFAKE :: Module +iNTERACTIVE :: Module iNTERACTIVE = mkMainModule (fsLit ":Interactive") -thFAKE = mkMainModule (fsLit ":THFake") pRELUDE_NAME, mAIN_NAME :: ModuleName pRELUDE_NAME = mkModuleNameFS (fsLit "Prelude") @@ -311,6 +317,9 @@ mkBaseModule m = mkModule basePackageId (mkModuleNameFS m) mkBaseModule_ :: ModuleName -> Module mkBaseModule_ m = mkModule basePackageId m +mkSybModule :: FastString -> Module +mkSybModule m = mkModule sybPackageId (mkModuleNameFS m) + mkMainModule :: FastString -> Module mkMainModule m = mkModule mainPackageId (mkModuleNameFS m) @@ -327,7 +336,7 @@ mkMainModule_ m = mkModule mainPackageId m \begin{code} mkTupleModule :: Boxity -> Arity -> Module mkTupleModule Boxed 0 = gHC_UNIT -mkTupleModule Boxed _ = dATA_TUP +mkTupleModule Boxed _ = gHC_TUPLE mkTupleModule Unboxed _ = gHC_PRIM \end{code} @@ -352,11 +361,11 @@ eq_RDR, ge_RDR, ne_RDR, le_RDR, lt_RDR, gt_RDR, compare_RDR, ltTag_RDR, eqTag_RDR, gtTag_RDR :: RdrName 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") +ne_RDR = varQual_RDR gHC_CLASSES (fsLit "/=") +le_RDR = varQual_RDR gHC_CLASSES (fsLit "<=") +lt_RDR = varQual_RDR gHC_CLASSES (fsLit "<") +gt_RDR = varQual_RDR gHC_CLASSES (fsLit ">") +compare_RDR = varQual_RDR gHC_CLASSES (fsLit "compare") ltTag_RDR = dataQual_RDR gHC_ORDERING (fsLit "LT") eqTag_RDR = dataQual_RDR gHC_ORDERING (fsLit "EQ") gtTag_RDR = dataQual_RDR gHC_ORDERING (fsLit "GT") @@ -436,7 +445,7 @@ compose_RDR = varQual_RDR gHC_BASE (fsLit ".") not_RDR, getTag_RDR, succ_RDR, pred_RDR, minBound_RDR, maxBound_RDR, range_RDR, inRange_RDR, index_RDR, unsafeIndex_RDR, unsafeRangeSize_RDR :: RdrName -not_RDR = varQual_RDR gHC_BASE (fsLit "not") +not_RDR = varQual_RDR gHC_CLASSES (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") @@ -550,10 +559,10 @@ inlineIdName = varQual gHC_BASE (fsLit "inline") inlineIdKey -- Base classes (Eq, Ord, Functor) eqClassName, eqName, ordClassName, geName, functorClassName :: Name -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 +eqClassName = clsQual gHC_CLASSES (fsLit "Eq") eqClassKey +eqName = methName gHC_CLASSES (fsLit "==") eqClassOpKey +ordClassName = clsQual gHC_CLASSES (fsLit "Ord") ordClassKey +geName = methName gHC_CLASSES (fsLit ">=") geClassOpKey functorClassName = clsQual gHC_BASE (fsLit "Functor") functorClassKey -- Class Monad @@ -580,8 +589,8 @@ 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 +andName = varQual gHC_CLASSES (fsLit "&&") andIdKey +orName = varQual gHC_CLASSES (fsLit "||") orIdKey assertName = varQual gHC_BASE (fsLit "assert") assertIdKey breakpointName = varQual gHC_BASE (fsLit "breakpoint") breakpointIdKey breakpointCondName= varQual gHC_BASE (fsLit "breakpointCond") breakpointCondIdKey @@ -609,8 +618,8 @@ breakpointAutoJumpName -- PrelTup fstName, sndName :: Name -fstName = varQual dATA_TUP (fsLit "fst") fstIdKey -sndName = varQual dATA_TUP (fsLit "snd") sndIdKey +fstName = varQual dATA_TUPLE (fsLit "fst") fstIdKey +sndName = varQual dATA_TUPLE (fsLit "snd") sndIdKey -- Module PrelNum numClassName, fromIntegerName, minusName, negateName, plusIntegerName, @@ -621,7 +630,7 @@ minusName = methName gHC_NUM (fsLit "-") minusClassOpKey negateName = methName gHC_NUM (fsLit "negate") negateClassOpKey plusIntegerName = varQual gHC_INTEGER (fsLit "plusInteger") plusIntegerIdKey timesIntegerName = varQual gHC_INTEGER (fsLit "timesInteger") timesIntegerIdKey -integerTyConName = tcQual gHC_INTEGER (fsLit "Integer") integerTyConKey +integerTyConName = tcQual gHC_INTEGER_INTERNALS (fsLit "Integer") integerTyConKey smallIntegerName = varQual gHC_INTEGER (fsLit "smallInteger") smallIntegerIdKey -- PrelReal types and classes @@ -670,7 +679,7 @@ dataClassName = clsQual gENERICS (fsLit "Data") dataClassKey -- Error module assertErrorName :: Name -assertErrorName = varQual gHC_ERR (fsLit "assertError") assertErrorIdKey +assertErrorName = varQual gHC_IO_BASE (fsLit "assertError") assertErrorIdKey -- Enum module (Enum, Bounded) enumClassName, enumFromName, enumFromToName, enumFromThenName, @@ -699,8 +708,8 @@ readClassName = clsQual gHC_READ (fsLit "Read") readClassKey -- parallel array types and functions enumFromToPName, enumFromThenToPName, nullPName, lengthPName, singletonPName, replicatePName, mapPName, filterPName, - zipPName, crossMapPName, indexPName, toPName, bpermutePName, - bpermuteDftPName, indexOfPName :: Name + zipPName, crossMapPName, indexPName, toPName, + emptyPName, appPName :: Name enumFromToPName = varQual gHC_PARR (fsLit "enumFromToP") enumFromToPIdKey enumFromThenToPName= varQual gHC_PARR (fsLit "enumFromThenToP") enumFromThenToPIdKey nullPName = varQual gHC_PARR (fsLit "nullP") nullPIdKey @@ -713,9 +722,8 @@ 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 +emptyPName = varQual gHC_PARR (fsLit "emptyP") emptyPIdKey +appPName = varQual gHC_PARR (fsLit "+:+") appPIdKey -- IOBase things ioTyConName, ioDataConName, thenIOName, bindIOName, returnIOName, @@ -776,6 +784,10 @@ appAName = varQual aRROW (fsLit "app") appAIdKey choiceAName = varQual aRROW (fsLit "|||") choiceAIdKey loopAName = varQual aRROW (fsLit "loop") loopAIdKey +-- Annotation type checking +toAnnotationWrapperName :: Name +toAnnotationWrapperName = varQual gHC_DESUGAR (fsLit "toAnnotationWrapper") toAnnotationWrapperIdKey + -- Other classes, needed for type defaulting monadPlusClassName, randomClassName, randomGenClassName, isStringClassName :: Name @@ -1171,8 +1183,7 @@ groupWithIdKey = mkPreludeMiscIdUnique 70 -- Parallel array functions singletonPIdKey, nullPIdKey, lengthPIdKey, replicatePIdKey, mapPIdKey, filterPIdKey, zipPIdKey, crossMapPIdKey, indexPIdKey, toPIdKey, - enumFromToPIdKey, enumFromThenToPIdKey, - bpermutePIdKey, bpermuteDftPIdKey, indexOfPIdKey :: Unique + enumFromToPIdKey, enumFromThenToPIdKey, emptyPIdKey, appPIdKey :: Unique singletonPIdKey = mkPreludeMiscIdUnique 79 nullPIdKey = mkPreludeMiscIdUnique 80 lengthPIdKey = mkPreludeMiscIdUnique 81 @@ -1185,9 +1196,8 @@ indexPIdKey = mkPreludeMiscIdUnique 87 toPIdKey = mkPreludeMiscIdUnique 88 enumFromToPIdKey = mkPreludeMiscIdUnique 89 enumFromThenToPIdKey = mkPreludeMiscIdUnique 90 -bpermutePIdKey = mkPreludeMiscIdUnique 91 -bpermuteDftPIdKey = mkPreludeMiscIdUnique 92 -indexOfPIdKey = mkPreludeMiscIdUnique 93 +emptyPIdKey = mkPreludeMiscIdUnique 91 +appPIdKey = mkPreludeMiscIdUnique 92 -- dotnet interop unmarshalObjectIdKey, marshalObjectIdKey, marshalStringIdKey, @@ -1246,6 +1256,10 @@ loopAIdKey = mkPreludeMiscIdUnique 124 fromStringClassOpKey :: Unique fromStringClassOpKey = mkPreludeMiscIdUnique 125 +-- Annotation type checking +toAnnotationWrapperIdKey :: Unique +toAnnotationWrapperIdKey = mkPreludeMiscIdUnique 126 + ---------------- Template Haskell ------------------- -- USES IdUniques 200-399 -----------------------------------------------------