-- 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_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"
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}
%************************************************************************
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")
\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
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
-- 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}
%************************************************************************
-- 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
-----------------------------------------------------