-- 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,
-- Other classes
randomClassName, randomGenClassName, monadPlusClassName,
+ -- Annotation type checking
+ toAnnotationWrapperName,
+
-- Booleans
andName, orName
pRELUDE :: Module
pRELUDE = mkBaseModule_ pRELUDE_NAME
-gHC_PRIM, gHC_TYPES, gHC_BOOL, gHC_UNIT, gHC_ORDERING, gHC_GENERICS, gHC_BASE, gHC_ENUM,
- gHC_SHOW, gHC_READ, gHC_NUM, gHC_INTEGER, gHC_LIST, gHC_PARR,
+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_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")
gHC_TUPLE = mkPrimModule (fsLit "GHC.Tuple")
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")
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
-- 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")
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)
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")
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")
-- 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
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
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
-- 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
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,
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
-- 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
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,
fromStringClassOpKey :: Unique
fromStringClassOpKey = mkPreludeMiscIdUnique 125
+-- Annotation type checking
+toAnnotationWrapperIdKey :: Unique
+toAnnotationWrapperIdKey = mkPreludeMiscIdUnique 126
+
---------------- Template Haskell -------------------
-- USES IdUniques 200-399
-----------------------------------------------------