-- MonadRec stuff
mfixName,
+ -- Arrow stuff
+ arrAName, composeAName, firstAName,
+ appAName, choiceAName, loopAName,
+
-- Ix stuff
ixClassName,
-- Booleans
andName, orName
+ -- The Either type
+ , eitherTyConName, leftDataConName, rightDataConName
+
-- dotnet interop
, objectTyConName, marshalObjectName, unmarshalObjectName
, marshalStringName, unmarshalStringName, checkDotnetResName
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"
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"
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"
-- 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}
%************************************************************************
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")
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")
\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
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
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)
-- 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
-- dotnet interop
objectTyConKey = mkPreludeTyConUnique 83
+eitherTyConKey = mkPreludeTyConUnique 84
+
---------------- Template Haskell -------------------
-- USES TyConUniques 100-119
-----------------------------------------------------
-- Data constructor for parallel arrays
parrDataConKey = mkPreludeDataConUnique 24
+
+leftDataConKey = mkPreludeDataConUnique 25
+rightDataConKey = mkPreludeDataConUnique 26
\end{code}
%************************************************************************
assertIdKey = mkPreludeMiscIdUnique 53
runSTRepIdKey = mkPreludeMiscIdUnique 54
-dollarMainKey = mkPreludeMiscIdUnique 55
+rootMainKey = mkPreludeMiscIdUnique 55
runMainKey = mkPreludeMiscIdUnique 56
andIdKey = mkPreludeMiscIdUnique 57
-- 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
-----------------------------------------------------