[project @ 2003-07-24 12:19:56 by ralf]
[ghc-hetmet.git] / ghc / compiler / prelude / PrelNames.lhs
index d65c9f1..4d834df 100644 (file)
@@ -175,6 +175,10 @@ basicKnownKeyNames
        -- MonadRec stuff
        mfixName,
 
+       -- Arrow stuff
+       arrAName, composeAName, firstAName,
+       appAName, choiceAName, loopAName,
+
        -- Ix stuff
        ixClassName, 
 
@@ -215,6 +219,9 @@ basicKnownKeyNames
        -- Booleans
        andName, orName
        
+       -- The Either type
+       , eitherTyConName, leftDataConName, rightDataConName
+
        -- dotnet interop
        , objectTyConName, marshalObjectName, unmarshalObjectName
        , marshalStringName, unmarshalStringName, checkDotnetResName
@@ -244,6 +251,7 @@ pREL_NUM_Name     = mkModuleName "GHC.Num"
 pREL_LIST_Name    = mkModuleName "GHC.List"
 pREL_PARR_Name    = mkModuleName "GHC.PArr"
 pREL_TUP_Name     = mkModuleName "Data.Tuple"
+pREL_EITHER_Name  = mkModuleName "Data.Either"
 pREL_PACK_Name    = mkModuleName "GHC.Pack"
 pREL_CONC_Name    = mkModuleName "GHC.Conc"
 pREL_IO_BASE_Name = mkModuleName "GHC.IOBase"
@@ -259,7 +267,7 @@ pREL_FLOAT_Name   = mkModuleName "GHC.Float"
 pREL_TOP_HANDLER_Name = mkModuleName "GHC.TopHandler"
 sYSTEM_IO_Name   = mkModuleName "System.IO"
 dYNAMIC_Name     = mkModuleName "Data.Dynamic"
-tRAVERSE_Name    = mkModuleName "Data.Traverse"
+tYPEABLE_Name    = mkModuleName "Data.Typeable"
 gENERICS_Name    = mkModuleName "Data.Generics"
 dOTNET_Name       = mkModuleName "GHC.Dotnet"
 
@@ -270,6 +278,7 @@ mAIN_Name     = mkModuleName "Main"
 pREL_INT_Name    = mkModuleName "GHC.Int"
 pREL_WORD_Name   = mkModuleName "GHC.Word"
 mONAD_FIX_Name   = mkModuleName "Control.Monad.Fix"
+aRROW_Name       = mkModuleName "Control.Arrow"
 aDDR_Name        = mkModuleName "Addr"
 
 gLA_EXTS_Name   = mkModuleName "GHC.Exts"
@@ -290,9 +299,13 @@ pRELUDE            = mkBasePkgModule pRELUDE_Name
 -- MetaHaskell Extension  text2 from Meta/work/gen.hs
 mETA_META_Name   = mkModuleName "Language.Haskell.THSyntax"
 
-dOLLAR_MAIN_Name = mkModuleName "$Main"                -- Root module for initialisation 
-dOLLAR_MAIN     = mkHomeModule dOLLAR_MAIN_Name
-iNTERACTIVE      = mkHomeModule (mkModuleName "$Interactive")
+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
+       -- use himself.  The z-encoding for ':' is "ZC", so the z-encoded
+       -- module name still starts with a capital letter, which keeps
+       -- the z-encoded version consistent.
+iNTERACTIVE    = mkHomeModule (mkModuleName ":Interactive")
 \end{code}
 
 %************************************************************************
@@ -358,6 +371,9 @@ false_RDR           = nameRdrName falseDataConName
 true_RDR               = nameRdrName trueDataConName
 and_RDR                        = nameRdrName andName
 
+left_RDR               = nameRdrName leftDataConName
+right_RDR              = nameRdrName rightDataConName
+
 error_RDR              = nameRdrName errorName
 
 fromEnum_RDR           = varQual_RDR pREL_ENUM_Name FSLIT("fromEnum")
@@ -429,9 +445,9 @@ showString_RDR          = varQual_RDR pREL_SHOW_Name FSLIT("showString")
 showSpace_RDR           = varQual_RDR pREL_SHOW_Name FSLIT("showSpace") 
 showParen_RDR           = varQual_RDR pREL_SHOW_Name FSLIT("showParen") 
 
-typeOf_RDR     = varQual_RDR dYNAMIC_Name FSLIT("typeOf")
-mkTypeRep_RDR  = varQual_RDR dYNAMIC_Name FSLIT("mkAppTy")
-mkTyConRep_RDR = varQual_RDR dYNAMIC_Name FSLIT("mkTyCon")
+typeOf_RDR     = varQual_RDR tYPEABLE_Name FSLIT("typeOf")
+mkTypeRep_RDR  = varQual_RDR tYPEABLE_Name FSLIT("mkAppTy")
+mkTyConRep_RDR = varQual_RDR tYPEABLE_Name FSLIT("mkTyCon")
 
 constr_RDR  = dataQual_RDR gENERICS_Name FSLIT("Constr")
 gfoldl_RDR  = varQual_RDR gENERICS_Name FSLIT("gfoldl")
@@ -462,8 +478,8 @@ and it's convenient to write them all down in one place.
 
 
 \begin{code}
-dollarMainName = varQual dOLLAR_MAIN_Name FSLIT("main") dollarMainKey
-runIOName      = varQual pREL_TOP_HANDLER_Name FSLIT("runIO") runMainKey
+rootMainName = varQual rOOT_MAIN_Name FSLIT("main") rootMainKey
+runIOName    = varQual pREL_TOP_HANDLER_Name FSLIT("runIO") runMainKey
 
 -- Stuff from GHC.Prim
 superKindName    = kindQual FSLIT("KX") kindConKey
@@ -521,6 +537,10 @@ consDataConName      = wDataQual pREL_BASE_Name FSLIT(":") consDataConKey
 eqName           = varQual  pREL_BASE_Name FSLIT("==") eqClassOpKey
 geName           = varQual  pREL_BASE_Name FSLIT(">=") geClassOpKey
 
+eitherTyConName          = tcQual   pREL_EITHER_Name FSLIT("Either") eitherTyConKey
+leftDataConName   = dataQual pREL_EITHER_Name FSLIT("Left")   leftDataConKey
+rightDataConName  = dataQual pREL_EITHER_Name FSLIT("Right")  rightDataConKey
+
 -- Generics
 crossTyConName     = tcQual   pREL_BASE_Name FSLIT(":*:") crossTyConKey
 crossDataConName   = dataQual pREL_BASE_Name FSLIT(":*:") crossDataConKey
@@ -598,7 +618,7 @@ realFloatClassName = clsQual  pREL_FLOAT_Name FSLIT("RealFloat") realFloatClassK
 ixClassName       = clsQual pREL_ARR_Name FSLIT("Ix") ixClassKey
 
 -- Class Typeable and Data
-typeableClassName = clsQual dYNAMIC_Name  FSLIT("Typeable") typeableClassKey
+typeableClassName = clsQual tYPEABLE_Name FSLIT("Typeable") typeableClassKey
 dataClassName     = clsQual gENERICS_Name FSLIT("Data")     dataClassKey
 
 -- Enum module (Enum, Bounded)
@@ -699,6 +719,14 @@ splitName          = varQual gLA_EXTS_Name FSLIT("split") splitIdKey
 -- Recursive-do notation
 mfixName          = varQual mONAD_FIX_Name FSLIT("mfix") mfixIdKey
 
+-- Arrow notation
+arrAName          = varQual aRROW_Name FSLIT("arr")    arrAIdKey
+composeAName      = varQual aRROW_Name FSLIT(">>>")    composeAIdKey
+firstAName        = varQual aRROW_Name FSLIT("first")  firstAIdKey
+appAName          = varQual aRROW_Name FSLIT("app")    appAIdKey
+choiceAName       = varQual aRROW_Name FSLIT("|||")    choiceAIdKey
+loopAName         = varQual aRROW_Name FSLIT("loop")   loopAIdKey
+
 -- dotnet interop
 objectTyConName            = wTcQual  dOTNET_Name FSLIT("Object") objectTyConKey
 unmarshalObjectName = varQual  dOTNET_Name FSLIT("unmarshalObject") unmarshalObjectIdKey
@@ -851,6 +879,8 @@ parrTyConKey                                = mkPreludeTyConUnique 82
 -- dotnet interop
 objectTyConKey                         = mkPreludeTyConUnique 83
 
+eitherTyConKey                         = mkPreludeTyConUnique 84
+
 ---------------- Template Haskell -------------------
 --     USES TyConUniques 100-119
 -----------------------------------------------------
@@ -888,6 +918,9 @@ genUnitDataConKey                   = mkPreludeDataConUnique 23
 
 -- Data constructor for parallel arrays
 parrDataConKey                         = mkPreludeDataConUnique 24
+
+leftDataConKey                         = mkPreludeDataConUnique 25
+rightDataConKey                                = mkPreludeDataConUnique 26
 \end{code}
 
 %************************************************************************
@@ -949,7 +982,7 @@ otherwiseIdKey                    = mkPreludeMiscIdUnique 51
 assertIdKey                  = mkPreludeMiscIdUnique 53
 runSTRepIdKey                = mkPreludeMiscIdUnique 54
 
-dollarMainKey                = mkPreludeMiscIdUnique 55
+rootMainKey                  = mkPreludeMiscIdUnique 55
 runMainKey                   = mkPreludeMiscIdUnique 56
 
 andIdKey                     = mkPreludeMiscIdUnique 57
@@ -1009,6 +1042,14 @@ returnMClassOpKey              = mkPreludeMiscIdUnique 117
 -- Recursive do notation
 mfixIdKey      = mkPreludeMiscIdUnique 118
 
+-- Arrow notation
+arrAIdKey      = mkPreludeMiscIdUnique 119
+composeAIdKey  = mkPreludeMiscIdUnique 120 -- >>>
+firstAIdKey    = mkPreludeMiscIdUnique 121
+appAIdKey      = mkPreludeMiscIdUnique 122
+choiceAIdKey   = mkPreludeMiscIdUnique 123 -- |||
+loopAIdKey     = mkPreludeMiscIdUnique 124
+
 ---------------- Template Haskell -------------------
 --     USES IdUniques 200-299
 -----------------------------------------------------