X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fprelude%2FPrelNames.lhs;h=4d834dfaacf99d7be12d94c00c9352121451a9f1;hb=ba2843abdfe6f055777e4e66e8add769fce31d29;hp=d32f360bed974324e81c1583be71375c4bb3b7b3;hpb=a1c9a60f9d3b45184f723b454017edcbf258f70e;p=ghc-hetmet.git diff --git a/ghc/compiler/prelude/PrelNames.lhs b/ghc/compiler/prelude/PrelNames.lhs index d32f360..4d834df 100644 --- a/ghc/compiler/prelude/PrelNames.lhs +++ b/ghc/compiler/prelude/PrelNames.lhs @@ -4,15 +4,7 @@ \section[PrelNames]{Definitions of prelude modules and names} --- MetaHaskell Extension -to do -- three things -1) Allocate a key -2) Make a "Name" -3) Add the name to knownKeyNames - - -The strings identify built-in prelude modules. They are -defined here so as to avod +Nota Bene: all Names defined in here should come from the base package * ModuleNames for prelude modules, e.g. pREL_BASE_Name :: ModuleName @@ -50,36 +42,17 @@ module PrelNames ( ----------------------------------------------------------- module PrelNames, -- A huge bunch of (a) Names, e.g. intTyConName -- (b) Uniques e.g. intTyConKey + -- (c) Groups of classes and types + -- (d) miscellaneous things -- So many that we export them all - - ----------------------------------------------------------- - knownKeyNames, templateHaskellNames, - mkTupNameStr, isBuiltInSyntaxName, - - ------------------------------------------------------------ - -- Goups of classes and types - needsDataDeclCtxtClassKeys, cCallishClassKeys, noDictClassKeys, - fractionalClassKeys, numericClassKeys, standardClassKeys, - derivableClassKeys, -- things are needed as a result of a - -- deriving(C) clause - numericTyKeys, cCallishTyKeys, - - mkUnboundName, isUnboundName ) where #include "HsVersions.h" -import Module ( ModuleName, mkPrelModule, mkHomeModule, mkModuleName,mkVanillaModule ) -import OccName ( UserFS, dataName, tcName, clsName, +import Module ( ModuleName, mkBasePkgModule, mkHomeModule, mkModuleName ) +import OccName ( UserFS, dataName, tcName, clsName, varName, mkKindOccFS, mkOccFS ) - --- to avoid clashes with Meta.var we must make a local alias for OccName.varName --- we do this by removing varName from the import of OccName above, making --- a qualified instance of OccName and using OccNameAlias.varName where varName --- ws previously used in this file. -import qualified OccName as OccNameAlias - import RdrName ( RdrName, nameRdrName, mkOrig, rdrNameOcc ) import Unique ( Unique, Uniquable(..), hasKey, @@ -89,7 +62,6 @@ import Unique ( Unique, Uniquable(..), hasKey, ) import BasicTypes ( Boxity(..) ) import Name ( Name, mkInternalName, mkKnownKeyExternalName, mkWiredInName, nameUnique ) -import NameSet ( NameSet, mkNameSet ) import SrcLoc ( noSrcLoc ) import Util ( nOfThem ) import Panic ( panic ) @@ -108,7 +80,7 @@ import FastString This *local* name is used by the interactive stuff \begin{code} -itName uniq = mkInternalName uniq (mkOccFS OccNameAlias.varName FSLIT("it")) noSrcLoc +itName uniq = mkInternalName uniq (mkOccFS varName FSLIT("it")) noSrcLoc \end{code} \begin{code} @@ -151,12 +123,9 @@ This section tells what the compiler knows about the assocation of names with uniques. These ones are the *non* wired-in ones. The wired in ones are defined in TysWiredIn etc. - -MetaHaskell Extension -It is here that the names defiend in module Meta must be added \begin{code} -knownKeyNames :: [Name] -knownKeyNames +basicKnownKeyNames :: [Name] +basicKnownKeyNames = [ -- Type constructors (synonyms especially) ioTyConName, ioDataConName, runIOName, @@ -167,8 +136,6 @@ knownKeyNames byteArrayTyConName, mutableByteArrayTyConName, bcoPrimTyConName, - stablePtrTyConName, - stablePtrDataConName, -- Classes. *Must* include: -- classes that are grabbed by key (e.g., eqClassKey) @@ -188,6 +155,8 @@ knownKeyNames realFloatClassName, -- numeric cCallableClassName, -- mentioned, ccallish cReturnableClassName, -- mentioned, ccallish + dataClassName, + typeableClassName, -- Numeric stuff negateName, minusName, @@ -206,6 +175,10 @@ knownKeyNames -- MonadRec stuff mfixName, + -- Arrow stuff + arrAName, composeAName, firstAName, + appAName, choiceAName, loopAName, + -- Ix stuff ixClassName, @@ -231,54 +204,8 @@ knownKeyNames filterPName, zipPName, crossPName, indexPName, toPName, bpermutePName, bpermuteDftPName, indexOfPName, - -- MetaHaskell Extension, "the smart constructors" - -- text1 from Meta/work/gen.hs - intLName, - charLName, - plitName, - pvarName, - ptupName, - pconName, - ptildeName, - paspatName, - pwildName, - varName, - conName, - litName, - appName, - infixEName, - lamName, - tupName, - doEName, - compName, - listExpName, - condName, - letEName, - caseEName, - infixAppName, - sectionLName, - sectionRName, - guardedName, - normalName, - bindStName, - letStName, - noBindStName, - parStName, - fromName, - fromThenName, - fromToName, - fromThenToName, - liftName, - gensymName, - returnQName, - bindQName, - funName, - valName, - protoName, matchName, clauseName, - exprTyConName, declTyConName, pattTyConName, mtchTyConName, clseTyConName, - qTyConName, expTyConName, matTyConName, clsTyConName, - -- FFI primitive types that are not wired-in. + stablePtrTyConName, ptrTyConName, funPtrTyConName, addrTyConName, int8TyConName, int16TyConName, int32TyConName, int64TyConName, word8TyConName, word16TyConName, word32TyConName, word64TyConName, @@ -291,6 +218,13 @@ knownKeyNames -- 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 @@ -317,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" @@ -331,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" +tYPEABLE_Name = mkModuleName "Data.Typeable" +gENERICS_Name = mkModuleName "Data.Generics" +dOTNET_Name = mkModuleName "GHC.Dotnet" rEAD_PREC_Name = mkModuleName "Text.ParserCombinators.ReadPrec" lEX_Name = mkModuleName "Text.Read.Lex" @@ -339,29 +278,34 @@ 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" -gHC_PRIM = mkPrelModule gHC_PRIM_Name -pREL_BASE = mkPrelModule pREL_BASE_Name -pREL_ADDR = mkPrelModule pREL_ADDR_Name -pREL_PTR = mkPrelModule pREL_PTR_Name -pREL_STABLE = mkPrelModule pREL_STABLE_Name -pREL_IO_BASE = mkPrelModule pREL_IO_BASE_Name -pREL_PACK = mkPrelModule pREL_PACK_Name -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") +gHC_PRIM = mkBasePkgModule gHC_PRIM_Name +pREL_BASE = mkBasePkgModule pREL_BASE_Name +pREL_ADDR = mkBasePkgModule pREL_ADDR_Name +pREL_PTR = mkBasePkgModule pREL_PTR_Name +pREL_STABLE = mkBasePkgModule pREL_STABLE_Name +pREL_IO_BASE = mkBasePkgModule pREL_IO_BASE_Name +pREL_PACK = mkBasePkgModule pREL_PACK_Name +pREL_ERR = mkBasePkgModule pREL_ERR_Name +pREL_NUM = mkBasePkgModule pREL_NUM_Name +pREL_REAL = mkBasePkgModule pREL_REAL_Name +pREL_FLOAT = mkBasePkgModule pREL_FLOAT_Name +pRELUDE = mkBasePkgModule pRELUDE_Name -- MetaHaskell Extension text2 from Meta/work/gen.hs mETA_META_Name = mkModuleName "Language.Haskell.THSyntax" +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} %************************************************************************ @@ -396,8 +340,6 @@ mkTupNameStr Unboxed n = (gHC_PRIM_Name, mkFastString ("(#" ++ nOfThem (n-1) ',' %************************************************************************ \begin{code} -getTag_RDR = nameRdrName getTagName - eq_RDR = nameRdrName eqName ge_RDR = nameRdrName geName ne_RDR = varQual_RDR pREL_BASE_Name FSLIT("/=") @@ -429,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") @@ -452,6 +397,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 @@ -465,6 +411,7 @@ plus_RDR = varQual_RDR pREL_NUM_Name FSLIT("+") compose_RDR = varQual_RDR pREL_BASE_Name FSLIT(".") not_RDR = varQual_RDR pREL_BASE_Name FSLIT("not") +getTag_RDR = varQual_RDR pREL_BASE_Name FSLIT("getTag") succ_RDR = varQual_RDR pREL_ENUM_Name FSLIT("succ") pred_RDR = varQual_RDR pREL_ENUM_Name FSLIT("pred") minBound_RDR = varQual_RDR pREL_ENUM_Name FSLIT("minBound") @@ -497,6 +444,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 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") +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} @@ -515,18 +478,15 @@ and it's convenient to write them all down in one place. \begin{code} -dollarMainName = varQual 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 -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 @@ -557,7 +517,6 @@ threadIdPrimTyConName = tcQual gHC_PRIM_Name FSLIT("ThreadId#") threadI cCallableClassName = clsQual gHC_PRIM_Name FSLIT("CCallable") cCallableClassKey cReturnableClassName = clsQual gHC_PRIM_Name FSLIT("CReturnable") cReturnableClassKey -getTagName = wVarQual gHC_PRIM_Name FSLIT("getTag#") getTagIdKey unsafeCoerceName = wVarQual gHC_PRIM_Name FSLIT("unsafeCoerce#") unsafeCoerceIdKey nullAddrName = wVarQual gHC_PRIM_Name FSLIT("nullAddr#") nullAddrIdKey seqName = wVarQual gHC_PRIM_Name FSLIT("seq") seqIdKey @@ -578,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 @@ -654,6 +617,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 tYPEABLE_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 @@ -667,64 +634,6 @@ concatName = varQual pREL_LIST_Name FSLIT("concat") concatIdKey filterName = varQual pREL_LIST_Name FSLIT("filter") filterIdKey zipName = varQual pREL_LIST_Name FSLIT("zip") zipIdKey --- MetaHaskell Extension, "the smart constructors" --- text3 from Meta/work/gen.hs -intLName = varQual mETA_META_Name FSLIT("intL") intLIdKey -charLName = varQual mETA_META_Name FSLIT("charL") charLIdKey -plitName = varQual mETA_META_Name FSLIT("plit") plitIdKey -pvarName = varQual mETA_META_Name FSLIT("pvar") pvarIdKey -ptupName = varQual mETA_META_Name FSLIT("ptup") ptupIdKey -pconName = varQual mETA_META_Name FSLIT("pcon") pconIdKey -ptildeName = varQual mETA_META_Name FSLIT("ptilde") ptildeIdKey -paspatName = varQual mETA_META_Name FSLIT("paspat") paspatIdKey -pwildName = varQual mETA_META_Name FSLIT("pwild") pwildIdKey -varName = varQual mETA_META_Name FSLIT("var") varIdKey -conName = varQual mETA_META_Name FSLIT("con") conIdKey -litName = varQual mETA_META_Name FSLIT("lit") litIdKey -appName = varQual mETA_META_Name FSLIT("app") appIdKey -infixEName = varQual mETA_META_Name FSLIT("infixE") infixEIdKey -lamName = varQual mETA_META_Name FSLIT("lam") lamIdKey -tupName = varQual mETA_META_Name FSLIT("tup") tupIdKey -doEName = varQual mETA_META_Name FSLIT("doE") doEIdKey -compName = varQual mETA_META_Name FSLIT("comp") compIdKey -listExpName = varQual mETA_META_Name FSLIT("listExp") listExpIdKey -condName = varQual mETA_META_Name FSLIT("cond") condIdKey -letEName = varQual mETA_META_Name FSLIT("letE") letEIdKey -caseEName = varQual mETA_META_Name FSLIT("caseE") caseEIdKey -infixAppName = varQual mETA_META_Name FSLIT("infixApp") infixAppIdKey -sectionLName = varQual mETA_META_Name FSLIT("sectionL") sectionLIdKey -sectionRName = varQual mETA_META_Name FSLIT("sectionR") sectionRIdKey -guardedName = varQual mETA_META_Name FSLIT("guarded") guardedIdKey -normalName = varQual mETA_META_Name FSLIT("normal") normalIdKey -bindStName = varQual mETA_META_Name FSLIT("bindSt") bindStIdKey -letStName = varQual mETA_META_Name FSLIT("letSt") letStIdKey -noBindStName = varQual mETA_META_Name FSLIT("noBindSt") noBindStIdKey -parStName = varQual mETA_META_Name FSLIT("parSt") parStIdKey -fromName = varQual mETA_META_Name FSLIT("from") fromIdKey -fromThenName = varQual mETA_META_Name FSLIT("fromThen") fromThenIdKey -fromToName = varQual mETA_META_Name FSLIT("fromTo") fromToIdKey -fromThenToName = varQual mETA_META_Name FSLIT("fromThenTo") fromThenToIdKey -liftName = varQual mETA_META_Name FSLIT("lift") liftIdKey -gensymName = varQual mETA_META_Name FSLIT("gensym") gensymIdKey -returnQName = varQual mETA_META_Name FSLIT("returnQ") returnQIdKey -bindQName = varQual mETA_META_Name FSLIT("bindQ") bindQIdKey -funName = varQual mETA_META_Name FSLIT("fun") funIdKey -valName = varQual mETA_META_Name FSLIT("val") valIdKey -matchName = varQual mETA_META_Name FSLIT("match") matchIdKey -clauseName = varQual mETA_META_Name FSLIT("clause") clauseIdKey -protoName = varQual mETA_META_Name FSLIT("proto") protoIdKey -exprTyConName = tcQual mETA_META_Name FSLIT("Expr") exprTyConKey -declTyConName = tcQual mETA_META_Name FSLIT("Decl") declTyConKey -pattTyConName = tcQual mETA_META_Name FSLIT("Patt") pattTyConKey -mtchTyConName = tcQual mETA_META_Name FSLIT("Mtch") mtchTyConKey -clseTyConName = tcQual mETA_META_Name FSLIT("Clse") clseTyConKey -stmtTyConName = tcQual mETA_META_Name FSLIT("Stmt") stmtTyConKey - -qTyConName = tcQual mETA_META_Name FSLIT("Q") qTyConKey -expTyConName = tcQual mETA_META_Name FSLIT("Exp") expTyConKey -matTyConName = tcQual mETA_META_Name FSLIT("Mat") matTyConKey -clsTyConName = tcQual mETA_META_Name FSLIT("Cls") clsTyConKey - -- Class Show showClassName = clsQual pREL_SHOW_Name FSLIT("Show") showClassKey @@ -775,14 +684,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 @@ -790,7 +696,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 @@ -813,29 +718,23 @@ splitName = varQual gLA_EXTS_Name FSLIT("split") splitIdKey -- Recursive-do notation mfixName = varQual mONAD_FIX_Name FSLIT("mfix") mfixIdKey -\end{code} -%************************************************************************ -%* * -\subsection{Standard groups of names} -%* * -%************************************************************************ +-- 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 -\begin{code} -templateHaskellNames :: NameSet --- The names that are implicitly mentioned by ``bracket'' --- Should stay in sync with the import list of DsMeta -templateHaskellNames - = mkNameSet [ intLName,charLName, plitName, pvarName, ptupName, - pconName, ptildeName, paspatName, pwildName, - varName, conName, litName, appName, lamName, - tupName, doEName, compName, - listExpName, condName, letEName, caseEName, - infixAppName, guardedName, normalName, - bindStName, letStName, noBindStName, parStName, - fromName, fromThenName, fromToName, fromThenToName, - funName, valName, liftName,gensymName, bindQName, - appendName, matchName, clauseName ] \end{code} %************************************************************************ @@ -847,24 +746,25 @@ templateHaskellNames All these are original names; hence mkOrig \begin{code} -varQual = mk_known_key_name OccNameAlias.varName -- Note use of local alias vName -dataQual = mk_known_key_name dataName +varQual = mk_known_key_name varName +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 -wVarQual = mk_wired_in_name OccNameAlias.varName -- The wired-in analogues +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 OccNameAlias.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 mod (mkOccFS space str) uniq + = mkKnownKeyExternalName (mkBasePkgModule mod) (mkOccFS space str) uniq mk_wired_in_name space mod str uniq - = mkWiredInName (mkVanillaModule mod) (mkOccFS space str) uniq + = mkWiredInName (mkBasePkgModule mod) (mkOccFS space str) uniq kindQual str uq = mkInternalName uq (mkKindOccFS tcName str) noSrcLoc -- Kinds are not z-encoded in interface file, hence mkKindOccFS @@ -883,10 +783,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 @@ -895,10 +797,8 @@ realClassKey = mkPreludeClassUnique 14 realFloatClassKey = mkPreludeClassUnique 15 realFracClassKey = mkPreludeClassUnique 16 showClassKey = mkPreludeClassUnique 17 - cCallableClassKey = mkPreludeClassUnique 18 cReturnableClassKey = mkPreludeClassUnique 19 - ixClassKey = mkPreludeClassUnique 20 \end{code} @@ -968,11 +868,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 @@ -981,17 +876,14 @@ genUnitTyConKey = mkPreludeTyConUnique 81 -- Parallel array type constructor parrTyConKey = mkPreludeTyConUnique 82 --- Template Haskell -qTyConKey = mkPreludeTyConUnique 83 -exprTyConKey = mkPreludeTyConUnique 84 -declTyConKey = mkPreludeTyConUnique 85 -pattTyConKey = mkPreludeTyConUnique 86 -mtchTyConKey = mkPreludeTyConUnique 87 -clseTyConKey = mkPreludeTyConUnique 88 -stmtTyConKey = mkPreludeTyConUnique 89 -expTyConKey = mkPreludeTyConUnique 90 -matTyConKey = mkPreludeTyConUnique 91 -clsTyConKey = mkPreludeTyConUnique 92 +-- dotnet interop +objectTyConKey = mkPreludeTyConUnique 83 + +eitherTyConKey = mkPreludeTyConUnique 84 + +---------------- Template Haskell ------------------- +-- USES TyConUniques 100-119 +----------------------------------------------------- unitTyConKey = mkTupleTyConUnique Boxed 0 \end{code} @@ -1003,7 +895,6 @@ unitTyConKey = mkTupleTyConUnique Boxed 0 %************************************************************************ \begin{code} -addrDataConKey = mkPreludeDataConUnique 0 charDataConKey = mkPreludeDataConUnique 1 consDataConKey = mkPreludeDataConUnique 2 doubleDataConKey = mkPreludeDataConUnique 3 @@ -1014,13 +905,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 @@ -1030,6 +918,9 @@ genUnitDataConKey = mkPreludeDataConUnique 23 -- Data constructor for parallel arrays parrDataConKey = mkPreludeDataConUnique 24 + +leftDataConKey = mkPreludeDataConUnique 25 +rightDataConKey = mkPreludeDataConUnique 26 \end{code} %************************************************************************ @@ -1040,7 +931,6 @@ parrDataConKey = mkPreludeDataConUnique 24 \begin{code} absentErrorIdKey = mkPreludeMiscIdUnique 1 -getTagIdKey = mkPreludeMiscIdUnique 2 augmentIdKey = mkPreludeMiscIdUnique 3 appendIdKey = mkPreludeMiscIdUnique 4 buildIdKey = mkPreludeMiscIdUnique 5 @@ -1092,7 +982,7 @@ otherwiseIdKey = mkPreludeMiscIdUnique 51 assertIdKey = mkPreludeMiscIdUnique 53 runSTRepIdKey = mkPreludeMiscIdUnique 54 -dollarMainKey = mkPreludeMiscIdUnique 55 +rootMainKey = mkPreludeMiscIdUnique 55 runMainKey = mkPreludeMiscIdUnique 56 andIdKey = mkPreludeMiscIdUnique 57 @@ -1116,6 +1006,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 @@ -1141,54 +1039,20 @@ bindMClassOpKey = mkPreludeMiscIdUnique 113 -- (>>=) thenMClassOpKey = mkPreludeMiscIdUnique 114 -- (>>) returnMClassOpKey = mkPreludeMiscIdUnique 117 --- MetaHaskell Extension, (text4 118) from Meta/work/gen.hs -intLIdKey = mkPreludeMiscIdUnique 118 -charLIdKey = mkPreludeMiscIdUnique 119 -plitIdKey = mkPreludeMiscIdUnique 120 -pvarIdKey = mkPreludeMiscIdUnique 121 -ptupIdKey = mkPreludeMiscIdUnique 122 -pconIdKey = mkPreludeMiscIdUnique 123 -ptildeIdKey = mkPreludeMiscIdUnique 124 -paspatIdKey = mkPreludeMiscIdUnique 125 -pwildIdKey = mkPreludeMiscIdUnique 126 -varIdKey = mkPreludeMiscIdUnique 127 -conIdKey = mkPreludeMiscIdUnique 128 -litIdKey = mkPreludeMiscIdUnique 129 -appIdKey = mkPreludeMiscIdUnique 130 -infixEIdKey = mkPreludeMiscIdUnique 131 -lamIdKey = mkPreludeMiscIdUnique 132 -tupIdKey = mkPreludeMiscIdUnique 133 -doEIdKey = mkPreludeMiscIdUnique 134 -compIdKey = mkPreludeMiscIdUnique 135 -listExpIdKey = mkPreludeMiscIdUnique 137 -condIdKey = mkPreludeMiscIdUnique 138 -letEIdKey = mkPreludeMiscIdUnique 139 -caseEIdKey = mkPreludeMiscIdUnique 140 -infixAppIdKey = mkPreludeMiscIdUnique 141 -sectionLIdKey = mkPreludeMiscIdUnique 142 -sectionRIdKey = mkPreludeMiscIdUnique 143 -guardedIdKey = mkPreludeMiscIdUnique 144 -normalIdKey = mkPreludeMiscIdUnique 145 -bindStIdKey = mkPreludeMiscIdUnique 146 -letStIdKey = mkPreludeMiscIdUnique 147 -noBindStIdKey = mkPreludeMiscIdUnique 148 -parStIdKey = mkPreludeMiscIdUnique 149 -fromIdKey = mkPreludeMiscIdUnique 150 -fromThenIdKey = mkPreludeMiscIdUnique 151 -fromToIdKey = mkPreludeMiscIdUnique 152 -fromThenToIdKey = mkPreludeMiscIdUnique 153 -liftIdKey = mkPreludeMiscIdUnique 154 -gensymIdKey = mkPreludeMiscIdUnique 155 -returnQIdKey = mkPreludeMiscIdUnique 156 -bindQIdKey = mkPreludeMiscIdUnique 157 -funIdKey = mkPreludeMiscIdUnique 158 -valIdKey = mkPreludeMiscIdUnique 159 -protoIdKey = mkPreludeMiscIdUnique 160 -matchIdKey = mkPreludeMiscIdUnique 161 -clauseIdKey = mkPreludeMiscIdUnique 162 - -- Recursive do notation -mfixIdKey = mkPreludeMiscIdUnique 163 +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 +----------------------------------------------------- \end{code}