[project @ 2002-02-05 15:42:04 by simonpj]
[ghc-hetmet.git] / ghc / compiler / prelude / PrelNames.lhs
index ed4d031..be714d1 100644 (file)
@@ -95,8 +95,8 @@ knownKeyNames :: [Name]
 knownKeyNames
  =  [
        -- Type constructors (synonyms especially)
-       ioTyConName,
-       mainName,
+       ioTyConName, ioDataConName,
+       runMainName,
        orderingTyConName,
        rationalTyConName,
        ratioDataConName,
@@ -159,7 +159,6 @@ knownKeyNames
        mapName,
        appendName,
        unpackCStringName,
-       unpackCStringListName,
        unpackCStringAppendName,
        unpackCStringFoldrName,
        unpackCStringUtf8Name,
@@ -190,7 +189,8 @@ knownKeyNames
        eqStringName,
        assertName,
        runSTRepName,
-       printName
+       printName,
+       splitIdName, fstIdName, sndIdName       -- Used by splittery
     ]
 \end{code}
 
@@ -220,13 +220,14 @@ pREL_ARR_Name     = mkModuleName "PrelArr"
 pREL_BYTEARR_Name = mkModuleName "PrelByteArr"
 pREL_FOREIGN_Name = mkModuleName "PrelForeign"
 pREL_STABLE_Name  = mkModuleName "PrelStable"
+pREL_SPLIT_Name   = mkModuleName "PrelSplit"
 pREL_ADDR_Name    = mkModuleName "PrelAddr"
 pREL_PTR_Name     = mkModuleName "PrelPtr"
 pREL_ERR_Name     = mkModuleName "PrelErr"
 pREL_REAL_Name    = mkModuleName "PrelReal"
 pREL_FLOAT_Name   = mkModuleName "PrelFloat"
+pREL_TOP_HANDLER_Name = mkModuleName "PrelTopHandler"
 
-pREL_MAIN_Name    = mkModuleName "PrelMain"
 mAIN_Name        = mkModuleName "Main"
 pREL_INT_Name    = mkModuleName "PrelInt"
 pREL_WORD_Name   = mkModuleName "PrelWord"
@@ -234,6 +235,8 @@ pREL_WORD_Name        = mkModuleName "PrelWord"
 fOREIGNOBJ_Name          = mkModuleName "ForeignObj"
 aDDR_Name        = mkModuleName "Addr"
 
+gLA_EXTS_Name   = mkModuleName "GlaExts"
+
 pREL_GHC       = mkPrelModule pREL_GHC_Name
 pREL_BASE      = mkPrelModule pREL_BASE_Name
 pREL_ADDR      = mkPrelModule pREL_ADDR_Name
@@ -245,6 +248,7 @@ pREL_ERR            = mkPrelModule pREL_ERR_Name
 pREL_NUM       = mkPrelModule pREL_NUM_Name
 pREL_REAL      = mkPrelModule pREL_REAL_Name
 pREL_FLOAT     = mkPrelModule pREL_FLOAT_Name
+pRELUDE                = mkPrelModule pRELUDE_Name
 
 iNTERACTIVE     = mkHomeModule (mkModuleName "$Interactive")
 \end{code}
@@ -304,7 +308,8 @@ compiler (notably the deriving mechanism) need to mention their names,
 and it's convenient to write them all down in one place.
 
 \begin{code}
-mainName = varQual mAIN_Name SLIT("main") mainKey
+dollarMainName = varQual mAIN_Name SLIT("$main") dollarMainKey
+runMainName    = varQual pREL_TOP_HANDLER_Name SLIT("runMain") runMainKey
 
 -- Stuff from PrelGHC
 usOnceTyConName  = kindQual SLIT(".") usOnceTyConKey
@@ -358,6 +363,10 @@ listTyConName        = tcQual   pREL_BASE_Name SLIT("[]") listTyConKey
 nilDataConName           = dataQual pREL_BASE_Name SLIT("[]") nilDataConKey
 consDataConName          = dataQual pREL_BASE_Name SLIT(":") consDataConKey
 
+-- PrelTup
+fstIdName        = varQual pREL_TUP_Name SLIT("fst") fstIdKey
+sndIdName        = varQual pREL_TUP_Name SLIT("snd") sndIdKey
+
 -- Generics
 crossTyConName     = tcQual   pREL_BASE_Name SLIT(":*:") crossTyConKey
 crossDataConName   = dataQual pREL_BASE_Name SLIT(":*:") crossDataConKey
@@ -379,7 +388,6 @@ eqStringName          = varQual pREL_BASE_Name SLIT("eqString") eqStringIdKey
 
 -- Strings
 unpackCStringName       = varQual pREL_BASE_Name SLIT("unpackCString#") unpackCStringIdKey
-unpackCStringListName   = varQual pREL_BASE_Name SLIT("unpackCStringList#") unpackCStringListIdKey
 unpackCStringAppendName = varQual pREL_BASE_Name SLIT("unpackAppendCString#") unpackCStringAppendIdKey
 unpackCStringFoldrName  = varQual pREL_BASE_Name SLIT("unpackFoldrCString#") unpackCStringFoldrIdKey
 unpackCStringUtf8Name   = varQual pREL_BASE_Name SLIT("unpackCStringUtf8#") unpackCStringUtf8IdKey
@@ -506,6 +514,9 @@ errorName      = varQual pREL_ERR_Name SLIT("error") errorIdKey
 assertName         = varQual pREL_GHC_Name SLIT("assert") assertIdKey
 getTagName        = varQual pREL_GHC_Name SLIT("getTag#") getTagIdKey
 runSTRepName      = varQual pREL_ST_Name  SLIT("runSTRep") runSTRepIdKey
+
+-- The "split" Id for splittable implicit parameters
+splitIdName = varQual pREL_SPLIT_Name SLIT("split") splitIdKey
 \end{code}
 
 %************************************************************************
@@ -845,8 +856,18 @@ plusIntegerIdKey         = mkPreludeMiscIdUnique 41
 timesIntegerIdKey            = mkPreludeMiscIdUnique 42
 printIdKey                   = mkPreludeMiscIdUnique 43
 failIOIdKey                  = mkPreludeMiscIdUnique 44
-unpackCStringListIdKey       = mkPreludeMiscIdUnique 45
 nullAddrIdKey                = mkPreludeMiscIdUnique 46
+voidArgIdKey                 = mkPreludeMiscIdUnique 47
+splitIdKey                   = mkPreludeMiscIdUnique 48
+fstIdKey                     = mkPreludeMiscIdUnique 49
+sndIdKey                     = mkPreludeMiscIdUnique 50
+otherwiseIdKey               = mkPreludeMiscIdUnique 51
+mapIdKey                     = mkPreludeMiscIdUnique 52
+assertIdKey                  = mkPreludeMiscIdUnique 53
+runSTRepIdKey                = mkPreludeMiscIdUnique 54
+
+dollarMainKey                = mkPreludeMiscIdUnique 55
+runMainKey                   = mkPreludeMiscIdUnique 56
 \end{code}
 
 Certain class operations from Prelude classes.  They get their own
@@ -854,6 +875,8 @@ uniques so we can look them up easily when we want to conjure them up
 during type checking.
 
 \begin{code}
+       -- Just a place holder for  unbound variables  produced by the renamer:
+unboundKey                   = mkPreludeMiscIdUnique 101 
 fromIntegerClassOpKey        = mkPreludeMiscIdUnique 102
 minusClassOpKey                      = mkPreludeMiscIdUnique 103
 fromRationalClassOpKey       = mkPreludeMiscIdUnique 104
@@ -866,20 +889,9 @@ geClassOpKey                     = mkPreludeMiscIdUnique 110
 negateClassOpKey             = mkPreludeMiscIdUnique 111
 failMClassOpKey                      = mkPreludeMiscIdUnique 112
 thenMClassOpKey                      = mkPreludeMiscIdUnique 113 -- (>>=)
-       -- Just a place holder for  unbound variables  produced by the renamer:
-unboundKey                   = mkPreludeMiscIdUnique 114 
 fromEnumClassOpKey           = mkPreludeMiscIdUnique 115
-                             
-mainKey                              = mkPreludeMiscIdUnique 116
 returnMClassOpKey            = mkPreludeMiscIdUnique 117
-otherwiseIdKey               = mkPreludeMiscIdUnique 118
 toEnumClassOpKey             = mkPreludeMiscIdUnique 119
-mapIdKey                     = mkPreludeMiscIdUnique 120
-\end{code}
-
-\begin{code}
-assertIdKey                  = mkPreludeMiscIdUnique 121
-runSTRepIdKey                = mkPreludeMiscIdUnique 122
 \end{code}