Update the wired-in name for Data.String.IsString
[ghc-hetmet.git] / compiler / prelude / PrelNames.lhs
index bccf84f..9e18d7a 100644 (file)
@@ -60,7 +60,7 @@ import Unique   ( Unique, Uniquable(..), hasKey,
                    mkTupleTyConUnique
                  ) 
 import BasicTypes ( Boxity(..), Arity )
-import Name      ( Name, mkInternalName, mkExternalName, nameModule )
+import Name      ( Name, mkInternalName, mkExternalName )
 import SrcLoc     ( noSrcLoc )
 import FastString
 \end{code}
@@ -109,6 +109,7 @@ basicKnownKeyNames
        runMainIOName,
        orderingTyConName,
        rationalTyConName,
+       stringTyConName,
        ratioDataConName,
        ratioTyConName,
        integerTyConName, smallIntegerDataConName, largeIntegerDataConName,
@@ -130,11 +131,15 @@ basicKnownKeyNames
        realFracClassName,              -- numeric
        realFloatClassName,             -- numeric
        dataClassName, 
+       isStringClassName,
 
        -- Numeric stuff
        negateName, minusName, 
        fromRationalName, fromIntegerName, 
        geName, eqName, 
+
+        -- String stuff
+        fromStringName,
        
        -- Enum stuff
        enumFromName, enumFromThenName, 
@@ -186,6 +191,8 @@ basicKnownKeyNames
        otherwiseIdName, 
        plusIntegerName, timesIntegerName,
        eqStringName, assertName, breakpointName, breakpointCondName,
+        breakpointAutoName,  opaqueTyConName, unknownTyConName, 
+        unknown1TyConName, unknown2TyConName, unknown3TyConName,
         assertErrorName, runSTRepName,
        printName, fstName, sndName,
 
@@ -231,6 +238,7 @@ gHC_LIST    = mkBaseModule FSLIT("GHC.List")
 gHC_PARR       = mkBaseModule FSLIT("GHC.PArr")
 dATA_TUP       = mkBaseModule FSLIT("Data.Tuple")
 dATA_EITHER    = mkBaseModule FSLIT("Data.Either")
+dATA_STRING    = mkBaseModule FSLIT("Data.String")
 gHC_PACK       = mkBaseModule FSLIT("GHC.Pack")
 gHC_CONC       = mkBaseModule FSLIT("GHC.Conc")
 gHC_IO_BASE    = mkBaseModule FSLIT("GHC.IOBase")
@@ -370,6 +378,8 @@ minus_RDR           = nameRdrName minusName
 times_RDR              = varQual_RDR  gHC_NUM FSLIT("*")
 plus_RDR                = varQual_RDR gHC_NUM FSLIT("+")
 
+fromString_RDR         = nameRdrName fromStringName
+
 compose_RDR            = varQual_RDR gHC_BASE FSLIT(".")
 
 not_RDR                = varQual_RDR gHC_BASE FSLIT("not")
@@ -461,6 +471,7 @@ unpackCStringAppendName = varQual gHC_BASE FSLIT("unpackAppendCString#") unpackC
 unpackCStringFoldrName  = varQual gHC_BASE FSLIT("unpackFoldrCString#") unpackCStringFoldrIdKey
 unpackCStringUtf8Name   = varQual gHC_BASE FSLIT("unpackCStringUtf8#") unpackCStringUtf8IdKey
 eqStringName           = varQual gHC_BASE FSLIT("eqString")  eqStringIdKey
+stringTyConName         = tcQual  gHC_BASE FSLIT("String") stringTyConKey
 
 -- The 'inline' function
 inlineIdName           = varQual gHC_BASE FSLIT("inline") inlineIdKey
@@ -480,16 +491,24 @@ returnMName          = methName gHC_BASE FSLIT("return") returnMClassOpKey
 failMName         = methName gHC_BASE FSLIT("fail")   failMClassOpKey
 
 -- Random PrelBase functions
+fromStringName = methName dATA_STRING FSLIT("fromString") fromStringClassOpKey
 otherwiseIdName   = varQual gHC_BASE FSLIT("otherwise")  otherwiseIdKey
 foldrName        = varQual gHC_BASE FSLIT("foldr")      foldrIdKey
 buildName        = varQual gHC_BASE FSLIT("build")      buildIdKey
 augmentName      = varQual gHC_BASE FSLIT("augment")    augmentIdKey
 appendName       = varQual gHC_BASE FSLIT("++")         appendIdKey
-andName                  = varQual gHC_BASE FSLIT("&&")          andIdKey
-orName           = varQual gHC_BASE FSLIT("||")          orIdKey
+andName                  = varQual gHC_BASE FSLIT("&&")         andIdKey
+orName           = varQual gHC_BASE FSLIT("||")         orIdKey
 assertName        = varQual gHC_BASE FSLIT("assert")     assertIdKey
 breakpointName    = varQual gHC_BASE FSLIT("breakpoint") breakpointIdKey
 breakpointCondName= varQual gHC_BASE FSLIT("breakpointCond") breakpointCondIdKey
+breakpointAutoName= varQual gHC_BASE FSLIT("breakpointAuto") breakpointAutoIdKey
+unknownTyConName  = tcQual  gHC_BASE FSLIT("Unknown") unknownTyConKey
+unknown1TyConName = tcQual  gHC_BASE FSLIT("Unknown1") unknown1TyConKey
+unknown2TyConName = tcQual  gHC_BASE FSLIT("Unknown2") unknown2TyConKey
+unknown3TyConName = tcQual  gHC_BASE FSLIT("Unknown3") unknown3TyConKey
+opaqueTyConName   = tcQual  gHC_BASE FSLIT("Opaque")   opaqueTyConKey
+
 breakpointJumpName
     = mkInternalName
         breakpointJumpIdKey
@@ -500,6 +519,11 @@ breakpointCondJumpName
         breakpointCondJumpIdKey
         (mkOccNameFS varName FSLIT("breakpointCondJump"))
         noSrcLoc
+breakpointAutoJumpName
+    = mkInternalName
+        breakpointAutoJumpIdKey
+        (mkOccNameFS varName FSLIT("breakpointAutoJump"))
+        noSrcLoc
 
 -- PrelTup
 fstName                  = varQual dATA_TUP FSLIT("fst") fstIdKey
@@ -640,6 +664,7 @@ loopAName      = varQual aRROW FSLIT("loop")  loopAIdKey
 monadPlusClassName  = clsQual mONAD FSLIT("MonadPlus")  monadPlusClassKey
 randomClassName     = clsQual rANDOM FSLIT("Random")    randomClassKey
 randomGenClassName  = clsQual rANDOM FSLIT("RandomGen") randomGenClassKey
+isStringClassName   = clsQual dATA_STRING FSLIT("IsString") isStringClassKey
 
 -- dotnet interop
 objectTyConName            = tcQual   dOTNET FSLIT("Object") objectTyConKey
@@ -717,6 +742,8 @@ monadFixClassKey    = mkPreludeClassUnique 28
 monadPlusClassKey      = mkPreludeClassUnique 30
 randomClassKey         = mkPreludeClassUnique 31
 randomGenClassKey      = mkPreludeClassUnique 32
+
+isStringClassKey       = mkPreludeClassUnique 33
 \end{code}
 
 %************************************************************************
@@ -758,6 +785,10 @@ rationalTyConKey                   = mkPreludeTyConUnique 33
 realWorldTyConKey                      = mkPreludeTyConUnique 34
 stablePtrPrimTyConKey                  = mkPreludeTyConUnique 35
 stablePtrTyConKey                      = mkPreludeTyConUnique 36
+
+anyPrimTyConKey                                = mkPreludeTyConUnique 37
+anyPrimTyCon1Key                       = mkPreludeTyConUnique 38
+
 statePrimTyConKey                      = mkPreludeTyConUnique 50
 stableNamePrimTyConKey                 = mkPreludeTyConUnique 51
 stableNameTyConKey                     = mkPreludeTyConUnique 52
@@ -798,7 +829,7 @@ eitherTyConKey                              = mkPreludeTyConUnique 84
 
 -- Super Kinds constructors
 tySuperKindTyConKey                    = mkPreludeTyConUnique 85
-coSuperKindTyConKey                = mkPreludeTyConUnique 86
+coSuperKindTyConKey                    = mkPreludeTyConUnique 86
 
 -- Kind constructors
 liftedTypeKindTyConKey                  = mkPreludeTyConUnique 87
@@ -815,6 +846,14 @@ rightCoercionTyConKey                   = mkPreludeTyConUnique 96
 instCoercionTyConKey                    = mkPreludeTyConUnique 97
 unsafeCoercionTyConKey                  = mkPreludeTyConUnique 98
 
+unknownTyConKey                                = mkPreludeTyConUnique 99
+unknown1TyConKey                       = mkPreludeTyConUnique 130
+unknown2TyConKey                       = mkPreludeTyConUnique 131
+unknown3TyConKey                       = mkPreludeTyConUnique 132
+opaqueTyConKey                          = mkPreludeTyConUnique 133
+
+stringTyConKey                         = mkPreludeTyConUnique 134
+
 
 ---------------- Template Haskell -------------------
 --     USES TyConUniques 100-129
@@ -927,10 +966,12 @@ assertErrorIdKey        = mkPreludeMiscIdUnique 61
 
 breakpointIdKey               = mkPreludeMiscIdUnique 62
 breakpointCondIdKey           = mkPreludeMiscIdUnique 63
-breakpointJumpIdKey           = mkPreludeMiscIdUnique 64
-breakpointCondJumpIdKey       = mkPreludeMiscIdUnique 65
+breakpointAutoIdKey           = mkPreludeMiscIdUnique 64
+breakpointJumpIdKey           = mkPreludeMiscIdUnique 65
+breakpointCondJumpIdKey       = mkPreludeMiscIdUnique 66
+breakpointAutoJumpIdKey       = mkPreludeMiscIdUnique 67
 
-inlineIdKey                  = mkPreludeMiscIdUnique 66
+inlineIdKey                  = mkPreludeMiscIdUnique 68
 
 -- Parallel array functions
 nullPIdKey                   = mkPreludeMiscIdUnique 80
@@ -991,6 +1032,8 @@ appAIdKey  = mkPreludeMiscIdUnique 122
 choiceAIdKey   = mkPreludeMiscIdUnique 123 --  |||
 loopAIdKey     = mkPreludeMiscIdUnique 124
 
+fromStringClassOpKey         = mkPreludeMiscIdUnique 125
+
 ---------------- Template Haskell -------------------
 --     USES IdUniques 200-399
 -----------------------------------------------------
@@ -1050,7 +1093,9 @@ needsDataDeclCtxtClassKeys = -- see comments in TcDeriv
 standardClassKeys = derivableClassKeys ++ numericClassKeys
                  ++ [randomClassKey, randomGenClassKey,
                      functorClassKey, 
-                     monadClassKey, monadPlusClassKey]
+                     monadClassKey, monadPlusClassKey,
+                     isStringClassKey
+                    ]
 \end{code}
 
 @derivableClassKeys@ is also used in checking \tr{deriving} constructs