import OccName ( dataName, tcName, clsName, varName, mkOccFS
)
-import RdrName ( RdrName, nameRdrName, mkOrig, rdrNameOcc )
+import RdrName ( RdrName, nameRdrName, mkOrig, rdrNameOcc, mkUnqual )
import Unique ( Unique, Uniquable(..), hasKey,
mkPreludeMiscIdUnique, mkPreludeDataConUnique,
mkPreludeTyConUnique, mkPreludeClassUnique,
import Name ( Name, mkInternalName, mkExternalName, nameUnique, nameModule )
import SrcLoc ( noSrcLoc )
import FastString
-
-
\end{code}
basicKnownKeyNames
= genericTyConNames
++ monadNames
+ ++ typeableClassNames
++ [ -- Type constructors (synonyms especially)
ioTyConName, ioDataConName,
runIOName,
realFracClassName, -- numeric
realFloatClassName, -- numeric
dataClassName,
- typeableClassName,
-- Numeric stuff
negateName, minusName,
-- Others
otherwiseIdName,
plusIntegerName, timesIntegerName,
- eqStringName, assertName, runSTRepName,
+ eqStringName, assertName, assertErrorName, runSTRepName,
printName, splitName, fstName, sndName,
-- Booleans
gLA_EXTS = mkBasePkgModule gLA_EXTS_Name
mONAD_FIX = mkBasePkgModule mONAD_FIX_Name
--- MetaHaskell Extension text2 from Meta/work/gen.hs
-mETA_META_Name = mkModuleName "Language.Haskell.THSyntax"
-
rOOT_MAIN_Name = mkModuleName ":Main" -- Root module for initialisation
rOOT_MAIN = mkHomeModule rOOT_MAIN_Name
-- The ':xxx' makes a moudle name that the user can never
%************************************************************************
\begin{code}
+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
+
eq_RDR = nameRdrName eqName
ge_RDR = nameRdrName geName
ne_RDR = varQual_RDR pREL_BASE_Name FSLIT("/=")
showParen_RDR = varQual_RDR pREL_SHOW_Name FSLIT("showParen")
typeOf_RDR = varQual_RDR tYPEABLE_Name FSLIT("typeOf")
-mkTypeRep_RDR = varQual_RDR tYPEABLE_Name FSLIT("mkAppTy")
+mkTypeRep_RDR = varQual_RDR tYPEABLE_Name FSLIT("mkTyConApp")
mkTyConRep_RDR = varQual_RDR tYPEABLE_Name FSLIT("mkTyCon")
undefined_RDR = varQual_RDR pREL_ERR_Name FSLIT("undefined")
realFloatClassName = clsQual pREL_FLOAT FSLIT("RealFloat") realFloatClassKey
-- Class Ix
-ixClassName = clsQual pREL_ARR FSLIT("Ix") ixClassKey
+ixClassName = clsQual pREL_ARR FSLIT("Ix") ixClassKey
+
+-- Class Typeable
+typeableClassName = clsQual tYPEABLE FSLIT("Typeable") typeableClassKey
+typeable1ClassName = clsQual tYPEABLE FSLIT("Typeable1") typeable1ClassKey
+typeable2ClassName = clsQual tYPEABLE FSLIT("Typeable2") typeable2ClassKey
+typeable3ClassName = clsQual tYPEABLE FSLIT("Typeable3") typeable3ClassKey
+typeable4ClassName = clsQual tYPEABLE FSLIT("Typeable4") typeable4ClassKey
+typeable5ClassName = clsQual tYPEABLE FSLIT("Typeable5") typeable5ClassKey
+typeable6ClassName = clsQual tYPEABLE FSLIT("Typeable6") typeable6ClassKey
+typeable7ClassName = clsQual tYPEABLE FSLIT("Typeable7") typeable7ClassKey
+
+typeableClassNames = [ typeableClassName, typeable1ClassName, typeable2ClassName
+ , typeable3ClassName, typeable4ClassName, typeable5ClassName
+ , typeable6ClassName, typeable7ClassName ]
--- Class Typeable and Data
-typeableClassName = clsQual tYPEABLE FSLIT("Typeable") typeableClassKey
-dataClassName = clsQual gENERICS FSLIT("Data") dataClassKey
+-- Class Data
+dataClassName = clsQual gENERICS FSLIT("Data") dataClassKey
-- Error module
assertErrorName = varQual pREL_ERR FSLIT("assertError") assertErrorIdKey
boundedClassKey = mkPreludeClassUnique 1
enumClassKey = mkPreludeClassUnique 2
eqClassKey = mkPreludeClassUnique 3
-typeableClassKey = mkPreludeClassUnique 4
floatingClassKey = mkPreludeClassUnique 5
fractionalClassKey = mkPreludeClassUnique 6
integralClassKey = mkPreludeClassUnique 7
realFloatClassKey = mkPreludeClassUnique 15
realFracClassKey = mkPreludeClassUnique 16
showClassKey = mkPreludeClassUnique 17
-ixClassKey = mkPreludeClassUnique 20
+ixClassKey = mkPreludeClassUnique 18
+
+typeableClassKey = mkPreludeClassUnique 20
+typeable1ClassKey = mkPreludeClassUnique 21
+typeable2ClassKey = mkPreludeClassUnique 22
+typeable3ClassKey = mkPreludeClassUnique 23
+typeable4ClassKey = mkPreludeClassUnique 24
+typeable5ClassKey = mkPreludeClassUnique 25
+typeable6ClassKey = mkPreludeClassUnique 26
+typeable7ClassKey = mkPreludeClassUnique 27
\end{code}
%************************************************************************
eitherTyConKey = mkPreludeTyConUnique 84
---------------- Template Haskell -------------------
--- USES TyConUniques 100-119
+-- USES TyConUniques 100-129
-----------------------------------------------------
unitTyConKey = mkTupleTyConUnique Boxed 0
loopAIdKey = mkPreludeMiscIdUnique 124
---------------- Template Haskell -------------------
--- USES IdUniques 200-299
+-- USES IdUniques 200-399
-----------------------------------------------------
\end{code}