[project @ 2004-08-26 15:44:50 by simonpj]
[ghc-hetmet.git] / ghc / compiler / prelude / PrelNames.lhs
index e2e250f..893fed2 100644 (file)
@@ -53,7 +53,7 @@ import Module   ( Module, mkBasePkgModule, mkHomeModule, mkModuleName )
 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,
@@ -63,8 +63,6 @@ import BasicTypes ( Boxity(..), Arity )
 import Name      ( Name, mkInternalName, mkExternalName, nameUnique, nameModule )
 import SrcLoc     ( noSrcLoc )
 import FastString
-
-
 \end{code}
 
 
@@ -93,25 +91,6 @@ isUnboundName name = name `hasKey` unboundKey
 
 %************************************************************************
 %*                                                                     *
-\subsection{Built-in-syntax names
-%*                                                                     *
-%************************************************************************
-
-Built-in syntax names are parsed directly into Exact RdrNames.
-This predicate just identifies them. 
-
-\begin{code}
-isBuiltInSyntaxName :: Name -> Bool
-isBuiltInSyntaxName n
-  =  isTupleKey uniq
-  || uniq `elem` [listTyConKey, nilDataConKey, consDataConKey,
-                 funTyConKey, parrTyConKey]
-  where
-     uniq = nameUnique n
-\end{code}
-
-%************************************************************************
-%*                                                                     *
 \subsection{Known key Names}
 %*                                                                     *
 %************************************************************************
@@ -125,6 +104,7 @@ basicKnownKeyNames :: [Name]
 basicKnownKeyNames
  = genericTyConNames
  ++ monadNames
+ ++ typeableClassNames
  ++ [  -- Type constructors (synonyms especially)
        ioTyConName, ioDataConName,
        runIOName,
@@ -153,7 +133,6 @@ basicKnownKeyNames
        realFracClassName,              -- numeric
        realFloatClassName,             -- numeric
        dataClassName, 
-       typeableClassName,
 
        -- Numeric stuff
        negateName, minusName, 
@@ -208,7 +187,7 @@ basicKnownKeyNames
        -- Others
        otherwiseIdName, 
        plusIntegerName, timesIntegerName,
-       eqStringName, assertName, runSTRepName,
+       eqStringName, assertName, assertErrorName, runSTRepName,
        printName, splitName, fstName, sndName,
 
        -- Booleans
@@ -315,9 +294,6 @@ dOTNET              = mkBasePkgModule dOTNET_Name
 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
@@ -348,6 +324,10 @@ mkTupleModule Unboxed _ = gHC_PRIM
 %************************************************************************
 
 \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("/=")
@@ -448,7 +428,7 @@ showSpace_RDR           = varQual_RDR pREL_SHOW_Name FSLIT("showSpace")
 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")
@@ -555,11 +535,24 @@ floatingClassName  = clsQual  pREL_FLOAT FSLIT("Floating") floatingClassKey
 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
@@ -706,7 +699,6 @@ methName cls occ uniq
 boundedClassKey                = mkPreludeClassUnique 1 
 enumClassKey           = mkPreludeClassUnique 2 
 eqClassKey             = mkPreludeClassUnique 3 
-typeableClassKey       = mkPreludeClassUnique 4
 floatingClassKey       = mkPreludeClassUnique 5 
 fractionalClassKey     = mkPreludeClassUnique 6 
 integralClassKey       = mkPreludeClassUnique 7 
@@ -720,7 +712,16 @@ realClassKey               = mkPreludeClassUnique 14
 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}
 
 %************************************************************************
@@ -803,7 +804,7 @@ objectTyConKey                              = mkPreludeTyConUnique 83
 eitherTyConKey                         = mkPreludeTyConUnique 84
 
 ---------------- Template Haskell -------------------
---     USES TyConUniques 100-119
+--     USES TyConUniques 100-129
 -----------------------------------------------------
 
 unitTyConKey = mkTupleTyConUnique Boxed 0
@@ -972,7 +973,7 @@ choiceAIdKey        = mkPreludeMiscIdUnique 123 -- |||
 loopAIdKey     = mkPreludeMiscIdUnique 124
 
 ---------------- Template Haskell -------------------
---     USES IdUniques 200-299
+--     USES IdUniques 200-399
 -----------------------------------------------------
 \end{code}