X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fprelude%2FPrelNames.lhs;h=893fed28a0ce71a9e05aa4d20fd9137804a1f981;hb=bb88e732b7383c10496c0f60c3bdea2c22362cc6;hp=f9453cab258bd0371d84accbad363f2fc35b50ad;hpb=2b0a830e1a795b6049824f1371cf2ccaf710d045;p=ghc-hetmet.git diff --git a/ghc/compiler/prelude/PrelNames.lhs b/ghc/compiler/prelude/PrelNames.lhs index f9453ca..893fed2 100644 --- a/ghc/compiler/prelude/PrelNames.lhs +++ b/ghc/compiler/prelude/PrelNames.lhs @@ -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, @@ -345,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("/=") @@ -445,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") @@ -552,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 @@ -703,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 @@ -717,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} %************************************************************************ @@ -800,7 +804,7 @@ objectTyConKey = mkPreludeTyConUnique 83 eitherTyConKey = mkPreludeTyConUnique 84 ---------------- Template Haskell ------------------- --- USES TyConUniques 100-119 +-- USES TyConUniques 100-129 ----------------------------------------------------- unitTyConKey = mkTupleTyConUnique Boxed 0 @@ -969,7 +973,7 @@ choiceAIdKey = mkPreludeMiscIdUnique 123 -- ||| loopAIdKey = mkPreludeMiscIdUnique 124 ---------------- Template Haskell ------------------- --- USES IdUniques 200-299 +-- USES IdUniques 200-399 ----------------------------------------------------- \end{code}