X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fprelude%2FPrelNames.lhs;h=2ecfaa57dd6ec4f2def493d08fbf3fd433f10361;hb=16e4ce4c0c02650082f2e11982017c903c549ad5;hp=fef42d16549c906c0ad73343003f4bba6a385ec2;hpb=b429adbb230a10427a833073f6e7502b6e5da7fd;p=ghc-hetmet.git diff --git a/ghc/compiler/prelude/PrelNames.lhs b/ghc/compiler/prelude/PrelNames.lhs index fef42d1..2ecfaa5 100644 --- a/ghc/compiler/prelude/PrelNames.lhs +++ b/ghc/compiler/prelude/PrelNames.lhs @@ -136,8 +136,6 @@ basicKnownKeyNames byteArrayTyConName, mutableByteArrayTyConName, bcoPrimTyConName, - stablePtrTyConName, - stablePtrDataConName, -- Classes. *Must* include: -- classes that are grabbed by key (e.g., eqClassKey) @@ -157,6 +155,8 @@ basicKnownKeyNames realFloatClassName, -- numeric cCallableClassName, -- mentioned, ccallish cReturnableClassName, -- mentioned, ccallish + dataClassName, + typeableClassName, -- Numeric stuff negateName, minusName, @@ -175,6 +175,10 @@ basicKnownKeyNames -- MonadRec stuff mfixName, + -- Arrow stuff + arrAName, composeAName, firstAName, + appAName, choiceAName, loopAName, + -- Ix stuff ixClassName, @@ -201,6 +205,7 @@ basicKnownKeyNames toPName, bpermutePName, bpermuteDftPName, indexOfPName, -- FFI primitive types that are not wired-in. + stablePtrTyConName, ptrTyConName, funPtrTyConName, addrTyConName, int8TyConName, int16TyConName, int32TyConName, int64TyConName, word8TyConName, word16TyConName, word32TyConName, word64TyConName, @@ -213,6 +218,13 @@ basicKnownKeyNames -- Booleans andName, orName + + -- The Either type + , eitherTyConName, leftDataConName, rightDataConName + + -- dotnet interop + , objectTyConName, marshalObjectName, unmarshalObjectName + , marshalStringName, unmarshalStringName, checkDotnetResName ] monadNames :: [Name] -- The monad ops need by a HsDo @@ -239,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" @@ -253,6 +266,10 @@ pREL_REAL_Name = mkModuleName "GHC.Real" 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" +gENERICS_Name = mkModuleName "Data.Generics" +dOTNET_Name = mkModuleName "GHC.Dotnet" rEAD_PREC_Name = mkModuleName "Text.ParserCombinators.ReadPrec" lEX_Name = mkModuleName "Text.Read.Lex" @@ -261,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" @@ -278,12 +296,12 @@ pREL_REAL = mkBasePkgModule pREL_REAL_Name pREL_FLOAT = mkBasePkgModule pREL_FLOAT_Name pRELUDE = mkBasePkgModule pRELUDE_Name - -iNTERACTIVE = mkHomeModule (mkModuleName "$Interactive") - -- 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") \end{code} %************************************************************************ @@ -349,6 +367,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") @@ -372,6 +393,7 @@ unpackCStringFoldr_RDR = nameRdrName unpackCStringFoldrName unpackCStringUtf8_RDR = nameRdrName unpackCStringUtf8Name newStablePtr_RDR = nameRdrName newStablePtrName +addrDataCon_RDR = dataQual_RDR aDDR_Name FSLIT("A#") bindIO_RDR = nameRdrName bindIOName returnIO_RDR = nameRdrName returnIOName @@ -418,6 +440,22 @@ showsPrec_RDR = varQual_RDR pREL_SHOW_Name FSLIT("showsPrec") 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") + +constr_RDR = dataQual_RDR gENERICS_Name FSLIT("Constr") +gfoldl_RDR = varQual_RDR gENERICS_Name FSLIT("gfoldl") +gfoldr_RDR = varQual_RDR gENERICS_Name FSLIT("gfoldr") +gunfold_RDR = varQual_RDR gENERICS_Name FSLIT("gunfold") +gmapT_RDR = varQual_RDR gENERICS_Name FSLIT("gmapT") +gmapQ_RDR = varQual_RDR gENERICS_Name FSLIT("gmapQ") +gmapM_RDR = varQual_RDR gENERICS_Name FSLIT("gmapM") +conOf_RDR = varQual_RDR gENERICS_Name FSLIT("conOf") +consOf_RDR = varQual_RDR gENERICS_Name FSLIT("consOf") + +undefined_RDR = varQual_RDR pREL_ERR_Name FSLIT("undefined") \end{code} @@ -436,18 +474,15 @@ and it's convenient to write them all down in one place. \begin{code} -dollarMainName = varQual mAIN_Name FSLIT("$main") dollarMainKey +dollarMainName = varQual dOLLAR_MAIN_Name FSLIT("main") dollarMainKey runIOName = varQual pREL_TOP_HANDLER_Name FSLIT("runIO") runMainKey -- Stuff from GHC.Prim -usOnceTyConName = kindQual FSLIT(".") usOnceTyConKey -usManyTyConName = kindQual FSLIT("!") usManyTyConKey superKindName = kindQual FSLIT("KX") kindConKey superBoxityName = kindQual FSLIT("BX") boxityConKey liftedConName = kindQual FSLIT("*") liftedConKey unliftedConName = kindQual FSLIT("#") unliftedConKey openKindConName = kindQual FSLIT("?") anyBoxConKey -usageKindConName = kindQual FSLIT("$") usageConKey typeConName = kindQual FSLIT("Type") typeConKey funTyConName = tcQual gHC_PRIM_Name FSLIT("(->)") funTyConKey @@ -498,6 +533,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 @@ -574,6 +613,10 @@ realFloatClassName = clsQual pREL_FLOAT_Name FSLIT("RealFloat") realFloatClassK -- Class Ix ixClassName = clsQual pREL_ARR_Name FSLIT("Ix") ixClassKey +-- Class Typeable and Data +typeableClassName = clsQual dYNAMIC_Name FSLIT("Typeable") typeableClassKey +dataClassName = clsQual gENERICS_Name FSLIT("Data") dataClassKey + -- Enum module (Enum, Bounded) enumClassName = clsQual pREL_ENUM_Name FSLIT("Enum") enumClassKey enumFromName = varQual pREL_ENUM_Name FSLIT("enumFrom") enumFromClassOpKey @@ -637,14 +680,11 @@ wordTyConName = wTcQual pREL_WORD_Name FSLIT("Word") wordTyConKey wordDataConName = wDataQual pREL_WORD_Name FSLIT("W#") wordDataConKey -- Addr module -addrTyConName = wTcQual aDDR_Name FSLIT("Addr") addrTyConKey -addrDataConName = wDataQual aDDR_Name FSLIT("A#") addrDataConKey +addrTyConName = tcQual aDDR_Name FSLIT("Addr") addrTyConKey -- PrelPtr module -ptrTyConName = wTcQual pREL_PTR_Name FSLIT("Ptr") ptrTyConKey -ptrDataConName = wDataQual pREL_PTR_Name FSLIT("Ptr") ptrDataConKey -funPtrTyConName = wTcQual pREL_PTR_Name FSLIT("FunPtr") funPtrTyConKey -funPtrDataConName = wDataQual pREL_PTR_Name FSLIT("FunPtr") funPtrDataConKey +ptrTyConName = tcQual pREL_PTR_Name FSLIT("Ptr") ptrTyConKey +funPtrTyConName = tcQual pREL_PTR_Name FSLIT("FunPtr") funPtrTyConKey -- Byte array types byteArrayTyConName = tcQual pREL_BYTEARR_Name FSLIT("ByteArray") byteArrayTyConKey @@ -652,7 +692,6 @@ mutableByteArrayTyConName = tcQual pREL_BYTEARR_Name FSLIT("MutableByteArray") -- Foreign objects and weak pointers stablePtrTyConName = tcQual pREL_STABLE_Name FSLIT("StablePtr") stablePtrTyConKey -stablePtrDataConName = dataQual pREL_STABLE_Name FSLIT("StablePtr") stablePtrDataConKey newStablePtrName = varQual pREL_STABLE_Name FSLIT("newStablePtr") newStablePtrIdKey -- Error module @@ -675,6 +714,23 @@ 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 +marshalObjectName = varQual dOTNET_Name FSLIT("marshalObject") marshalObjectIdKey +marshalStringName = varQual dOTNET_Name FSLIT("marshalString") marshalStringIdKey +unmarshalStringName = varQual dOTNET_Name FSLIT("unmarshalString") unmarshalStringIdKey +checkDotnetResName = varQual dOTNET_Name FSLIT("checkResult") checkDotnetResNameIdKey + \end{code} %************************************************************************ @@ -687,7 +743,8 @@ All these are original names; hence mkOrig \begin{code} varQual = mk_known_key_name varName -dataQual = mk_known_key_name dataName +dataQual = mk_known_key_name dataName -- All the constructor names here are for the DataCon + -- itself, which lives in the VarName name space tcQual = mk_known_key_name tcName clsQual = mk_known_key_name clsName @@ -695,10 +752,10 @@ wVarQual = mk_wired_in_name varName -- The wired-in analogues wDataQual = mk_wired_in_name dataName wTcQual = mk_wired_in_name tcName -varQual_RDR mod str = mkOrig mod (mkOccFS varName str) -- note use of local alias vName +varQual_RDR mod str = mkOrig mod (mkOccFS varName str) -- The RDR analogues +dataQual_RDR mod str = mkOrig mod (mkOccFS dataName str) tcQual_RDR mod str = mkOrig mod (mkOccFS tcName str) clsQual_RDR mod str = mkOrig mod (mkOccFS clsName str) -dataQual_RDR mod str = mkOrig mod (mkOccFS dataName str) mk_known_key_name space mod str uniq = mkKnownKeyExternalName (mkBasePkgModule mod) (mkOccFS space str) uniq @@ -722,10 +779,12 @@ kindQual str uq = mkInternalName uq (mkKindOccFS tcName str) noSrcLoc boundedClassKey = mkPreludeClassUnique 1 enumClassKey = mkPreludeClassUnique 2 eqClassKey = mkPreludeClassUnique 3 +typeableClassKey = mkPreludeClassUnique 4 floatingClassKey = mkPreludeClassUnique 5 fractionalClassKey = mkPreludeClassUnique 6 integralClassKey = mkPreludeClassUnique 7 monadClassKey = mkPreludeClassUnique 8 +dataClassKey = mkPreludeClassUnique 9 functorClassKey = mkPreludeClassUnique 10 numClassKey = mkPreludeClassUnique 11 ordClassKey = mkPreludeClassUnique 12 @@ -734,10 +793,8 @@ realClassKey = mkPreludeClassUnique 14 realFloatClassKey = mkPreludeClassUnique 15 realFracClassKey = mkPreludeClassUnique 16 showClassKey = mkPreludeClassUnique 17 - cCallableClassKey = mkPreludeClassUnique 18 cReturnableClassKey = mkPreludeClassUnique 19 - ixClassKey = mkPreludeClassUnique 20 \end{code} @@ -807,11 +864,6 @@ bcoPrimTyConKey = mkPreludeTyConUnique 73 ptrTyConKey = mkPreludeTyConUnique 74 funPtrTyConKey = mkPreludeTyConUnique 75 --- Usage type constructors -usageConKey = mkPreludeTyConUnique 76 -usOnceTyConKey = mkPreludeTyConUnique 77 -usManyTyConKey = mkPreludeTyConUnique 78 - -- Generic Type Constructors crossTyConKey = mkPreludeTyConUnique 79 plusTyConKey = mkPreludeTyConUnique 80 @@ -820,6 +872,11 @@ genUnitTyConKey = mkPreludeTyConUnique 81 -- Parallel array type constructor parrTyConKey = mkPreludeTyConUnique 82 +-- dotnet interop +objectTyConKey = mkPreludeTyConUnique 83 + +eitherTyConKey = mkPreludeTyConUnique 84 + ---------------- Template Haskell ------------------- -- USES TyConUniques 100-119 ----------------------------------------------------- @@ -834,7 +891,6 @@ unitTyConKey = mkTupleTyConUnique Boxed 0 %************************************************************************ \begin{code} -addrDataConKey = mkPreludeDataConUnique 0 charDataConKey = mkPreludeDataConUnique 1 consDataConKey = mkPreludeDataConUnique 2 doubleDataConKey = mkPreludeDataConUnique 3 @@ -845,13 +901,10 @@ smallIntegerDataConKey = mkPreludeDataConUnique 7 largeIntegerDataConKey = mkPreludeDataConUnique 8 nilDataConKey = mkPreludeDataConUnique 11 ratioDataConKey = mkPreludeDataConUnique 12 -stablePtrDataConKey = mkPreludeDataConUnique 13 stableNameDataConKey = mkPreludeDataConUnique 14 trueDataConKey = mkPreludeDataConUnique 15 wordDataConKey = mkPreludeDataConUnique 16 ioDataConKey = mkPreludeDataConUnique 17 -ptrDataConKey = mkPreludeDataConUnique 18 -funPtrDataConKey = mkPreludeDataConUnique 19 -- Generic data constructors crossDataConKey = mkPreludeDataConUnique 20 @@ -861,6 +914,9 @@ genUnitDataConKey = mkPreludeDataConUnique 23 -- Data constructor for parallel arrays parrDataConKey = mkPreludeDataConUnique 24 + +leftDataConKey = mkPreludeDataConUnique 25 +rightDataConKey = mkPreludeDataConUnique 26 \end{code} %************************************************************************ @@ -946,6 +1002,14 @@ enumFromThenToPIdKey = mkPreludeMiscIdUnique 90 bpermutePIdKey = mkPreludeMiscIdUnique 91 bpermuteDftPIdKey = mkPreludeMiscIdUnique 92 indexOfPIdKey = mkPreludeMiscIdUnique 93 + +-- dotnet interop +unmarshalObjectIdKey = mkPreludeMiscIdUnique 94 +marshalObjectIdKey = mkPreludeMiscIdUnique 95 +marshalStringIdKey = mkPreludeMiscIdUnique 96 +unmarshalStringIdKey = mkPreludeMiscIdUnique 97 +checkDotnetResNameIdKey = mkPreludeMiscIdUnique 98 + \end{code} Certain class operations from Prelude classes. They get their own @@ -974,6 +1038,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 -----------------------------------------------------