[project @ 2001-11-29 13:47:09 by simonpj]
[ghc-hetmet.git] / ghc / compiler / prelude / PrelNames.lhs
index 7467fac..d79bd24 100644 (file)
@@ -44,7 +44,8 @@ import RdrName          ( RdrName, mkOrig, mkUnqual )
 import UniqFM
 import Unique    ( Unique, Uniquable(..), hasKey,
                    mkPreludeMiscIdUnique, mkPreludeDataConUnique,
-                   mkPreludeTyConUnique, mkPreludeClassUnique
+                   mkPreludeTyConUnique, mkPreludeClassUnique,
+                   mkTupleTyConUnique
                  ) 
 import BasicTypes ( Boxity(..), Arity )
 import UniqFM    ( UniqFM, listToUFM )
@@ -94,7 +95,7 @@ knownKeyNames :: [Name]
 knownKeyNames
  =  [
        -- Type constructors (synonyms especially)
-       ioTyConName,
+       ioTyConName, ioDataConName,
        mainName,
        orderingTyConName,
        rationalTyConName,
@@ -158,6 +159,7 @@ knownKeyNames
        mapName,
        appendName,
        unpackCStringName,
+       unpackCStringListName,
        unpackCStringAppendName,
        unpackCStringFoldrName,
        unpackCStringUtf8Name,
@@ -188,7 +190,8 @@ knownKeyNames
        eqStringName,
        assertName,
        runSTRepName,
-       printName
+       printName,
+       splitIdName, fstIdName, sndIdName       -- Used by splittery
     ]
 \end{code}
 
@@ -218,6 +221,7 @@ 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"
@@ -232,6 +236,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
@@ -318,8 +324,10 @@ typeConName         = kindQual SLIT("Type") typeConKey
 funTyConName                 = tcQual  pREL_GHC_Name SLIT("(->)")  funTyConKey
 charPrimTyConName            = tcQual  pREL_GHC_Name SLIT("Char#") charPrimTyConKey 
 intPrimTyConName             = tcQual  pREL_GHC_Name SLIT("Int#") intPrimTyConKey 
+int32PrimTyConName           = tcQual  pREL_GHC_Name SLIT("Int32#") int32PrimTyConKey 
 int64PrimTyConName           = tcQual  pREL_GHC_Name SLIT("Int64#") int64PrimTyConKey 
 wordPrimTyConName            = tcQual  pREL_GHC_Name SLIT("Word#") wordPrimTyConKey 
+word32PrimTyConName          = tcQual  pREL_GHC_Name SLIT("Word32#") word32PrimTyConKey 
 word64PrimTyConName          = tcQual  pREL_GHC_Name SLIT("Word64#") word64PrimTyConKey 
 addrPrimTyConName            = tcQual  pREL_GHC_Name SLIT("Addr#") addrPrimTyConKey 
 floatPrimTyConName           = tcQual  pREL_GHC_Name SLIT("Float#") floatPrimTyConKey 
@@ -354,6 +362,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
@@ -375,6 +387,7 @@ 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
@@ -501,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}
 
 %************************************************************************
@@ -696,58 +712,62 @@ intPrimTyConKey                           = mkPreludeTyConUnique 14
 intTyConKey                            = mkPreludeTyConUnique 15
 int8TyConKey                           = mkPreludeTyConUnique 16
 int16TyConKey                          = mkPreludeTyConUnique 17
-int32TyConKey                          = mkPreludeTyConUnique 18
-int64PrimTyConKey                      = mkPreludeTyConUnique 19
-int64TyConKey                          = mkPreludeTyConUnique 20
-integerTyConKey                                = mkPreludeTyConUnique 21
-listTyConKey                           = mkPreludeTyConUnique 22
-foreignObjPrimTyConKey                 = mkPreludeTyConUnique 23
-foreignObjTyConKey                     = mkPreludeTyConUnique 24
-foreignPtrTyConKey                     = mkPreludeTyConUnique 25
-weakPrimTyConKey                       = mkPreludeTyConUnique 26
-mutableArrayPrimTyConKey               = mkPreludeTyConUnique 27
-mutableByteArrayPrimTyConKey           = mkPreludeTyConUnique 28
-orderingTyConKey                       = mkPreludeTyConUnique 29
-mVarPrimTyConKey                       = mkPreludeTyConUnique 30
-ratioTyConKey                          = mkPreludeTyConUnique 31
-rationalTyConKey                       = mkPreludeTyConUnique 32
-realWorldTyConKey                      = mkPreludeTyConUnique 33
-stablePtrPrimTyConKey                  = mkPreludeTyConUnique 34
-stablePtrTyConKey                      = mkPreludeTyConUnique 35
-statePrimTyConKey                      = mkPreludeTyConUnique 36
-stableNamePrimTyConKey                 = mkPreludeTyConUnique 50
-stableNameTyConKey                     = mkPreludeTyConUnique 51
-mutableByteArrayTyConKey               = mkPreludeTyConUnique 52
-mutVarPrimTyConKey                     = mkPreludeTyConUnique 53
-ioTyConKey                             = mkPreludeTyConUnique 55
-byteArrayTyConKey                      = mkPreludeTyConUnique 56
-wordPrimTyConKey                       = mkPreludeTyConUnique 57
-wordTyConKey                           = mkPreludeTyConUnique 58
-word8TyConKey                          = mkPreludeTyConUnique 59
-word16TyConKey                         = mkPreludeTyConUnique 60
-word32TyConKey                         = mkPreludeTyConUnique 61
-word64PrimTyConKey                     = mkPreludeTyConUnique 62
-word64TyConKey                         = mkPreludeTyConUnique 63
-liftedConKey                           = mkPreludeTyConUnique 64
-unliftedConKey                         = mkPreludeTyConUnique 65
-anyBoxConKey                           = mkPreludeTyConUnique 66
-kindConKey                             = mkPreludeTyConUnique 67
-boxityConKey                           = mkPreludeTyConUnique 68
-typeConKey                             = mkPreludeTyConUnique 69
-threadIdPrimTyConKey                   = mkPreludeTyConUnique 70
-bcoPrimTyConKey                                = mkPreludeTyConUnique 71
-ptrTyConKey                            = mkPreludeTyConUnique 72
-funPtrTyConKey                         = mkPreludeTyConUnique 73
+int32PrimTyConKey                      = mkPreludeTyConUnique 18
+int32TyConKey                          = mkPreludeTyConUnique 19
+int64PrimTyConKey                      = mkPreludeTyConUnique 20
+int64TyConKey                          = mkPreludeTyConUnique 21
+integerTyConKey                                = mkPreludeTyConUnique 22
+listTyConKey                           = mkPreludeTyConUnique 23
+foreignObjPrimTyConKey                 = mkPreludeTyConUnique 24
+foreignObjTyConKey                     = mkPreludeTyConUnique 25
+foreignPtrTyConKey                     = mkPreludeTyConUnique 26
+weakPrimTyConKey                       = mkPreludeTyConUnique 27
+mutableArrayPrimTyConKey               = mkPreludeTyConUnique 28
+mutableByteArrayPrimTyConKey           = mkPreludeTyConUnique 29
+orderingTyConKey                       = mkPreludeTyConUnique 30
+mVarPrimTyConKey                       = mkPreludeTyConUnique 31
+ratioTyConKey                          = mkPreludeTyConUnique 32
+rationalTyConKey                       = mkPreludeTyConUnique 33
+realWorldTyConKey                      = mkPreludeTyConUnique 34
+stablePtrPrimTyConKey                  = mkPreludeTyConUnique 35
+stablePtrTyConKey                      = mkPreludeTyConUnique 36
+statePrimTyConKey                      = mkPreludeTyConUnique 50
+stableNamePrimTyConKey                 = mkPreludeTyConUnique 51
+stableNameTyConKey                     = mkPreludeTyConUnique 52
+mutableByteArrayTyConKey               = mkPreludeTyConUnique 53
+mutVarPrimTyConKey                     = mkPreludeTyConUnique 55
+ioTyConKey                             = mkPreludeTyConUnique 56
+byteArrayTyConKey                      = mkPreludeTyConUnique 57
+wordPrimTyConKey                       = mkPreludeTyConUnique 58
+wordTyConKey                           = mkPreludeTyConUnique 59
+word8TyConKey                          = mkPreludeTyConUnique 60
+word16TyConKey                         = mkPreludeTyConUnique 61 
+word32PrimTyConKey                     = mkPreludeTyConUnique 62 
+word32TyConKey                         = mkPreludeTyConUnique 63
+word64PrimTyConKey                     = mkPreludeTyConUnique 64
+word64TyConKey                         = mkPreludeTyConUnique 65
+liftedConKey                           = mkPreludeTyConUnique 66
+unliftedConKey                         = mkPreludeTyConUnique 67
+anyBoxConKey                           = mkPreludeTyConUnique 68
+kindConKey                             = mkPreludeTyConUnique 69
+boxityConKey                           = mkPreludeTyConUnique 70
+typeConKey                             = mkPreludeTyConUnique 71
+threadIdPrimTyConKey                   = mkPreludeTyConUnique 72
+bcoPrimTyConKey                                = mkPreludeTyConUnique 73
+ptrTyConKey                            = mkPreludeTyConUnique 74
+funPtrTyConKey                         = mkPreludeTyConUnique 75
 
 -- Usage type constructors
-usageConKey                            = mkPreludeTyConUnique 74
-usOnceTyConKey                         = mkPreludeTyConUnique 75
-usManyTyConKey                         = mkPreludeTyConUnique 76
+usageConKey                            = mkPreludeTyConUnique 76
+usOnceTyConKey                         = mkPreludeTyConUnique 77
+usManyTyConKey                         = mkPreludeTyConUnique 78
 
 -- Generic Type Constructors
-crossTyConKey                          = mkPreludeTyConUnique 77
-plusTyConKey                           = mkPreludeTyConUnique 78
-genUnitTyConKey                                = mkPreludeTyConUnique 79
+crossTyConKey                          = mkPreludeTyConUnique 79
+plusTyConKey                           = mkPreludeTyConUnique 80
+genUnitTyConKey                                = mkPreludeTyConUnique 81
+
+unitTyConKey = mkTupleTyConUnique Boxed 0
 \end{code}
 
 %************************************************************************
@@ -805,10 +825,12 @@ integerPlusOneIdKey             = mkPreludeMiscIdUnique 10
 integerPlusTwoIdKey          = mkPreludeMiscIdUnique 11
 integerZeroIdKey             = mkPreludeMiscIdUnique 12
 int2IntegerIdKey             = mkPreludeMiscIdUnique 13
+seqIdKey                     = mkPreludeMiscIdUnique 14
 irrefutPatErrorIdKey         = mkPreludeMiscIdUnique 15
 eqStringIdKey                = mkPreludeMiscIdUnique 16
 noMethodBindingErrorIdKey     = mkPreludeMiscIdUnique 17
 nonExhaustiveGuardsErrorIdKey = mkPreludeMiscIdUnique 18
+errorCStringIdKey            = mkPreludeMiscIdUnique 19 
 parErrorIdKey                = mkPreludeMiscIdUnique 20
 parIdKey                     = mkPreludeMiscIdUnique 21
 patErrorIdKey                = mkPreludeMiscIdUnique 22
@@ -834,6 +856,12 @@ 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
 \end{code}
 
 Certain class operations from Prelude classes.  They get their own