#include "HsVersions.h"
-import Module ( Module, mkModule )
+import PackageConfig
+import Module ( Module, ModuleName, mkModule, mkModuleNameFS )
import OccName ( dataName, tcName, clsName, varName, mkOccNameFS,
mkVarOccFS )
import RdrName ( RdrName, nameRdrName, mkOrig, rdrNameOcc, mkUnqual )
mkTupleTyConUnique
)
import BasicTypes ( Boxity(..), Arity )
-import Name ( Name, mkInternalName, mkExternalName, nameModule )
-import SrcLoc ( noSrcLoc )
+import Name ( Name, mkInternalName, mkExternalName )
+import SrcLoc
import FastString
\end{code}
This *local* name is used by the interactive stuff
\begin{code}
-itName uniq = mkInternalName uniq (mkOccNameFS varName FSLIT("it")) noSrcLoc
+itName uniq = mkInternalName uniq (mkOccNameFS varName FSLIT("it")) noSrcSpan
\end{code}
\begin{code}
-- mkUnboundName makes a place-holder Name; it shouldn't be looked at except possibly
-- during compiler debugging.
mkUnboundName :: RdrName -> Name
-mkUnboundName rdr_name = mkInternalName unboundKey (rdrNameOcc rdr_name) noSrcLoc
+mkUnboundName rdr_name = mkInternalName unboundKey (rdrNameOcc rdr_name) noSrcSpan
isUnboundName :: Name -> Bool
isUnboundName name = name `hasKey` unboundKey
basicKnownKeyNames
= genericTyConNames
++ typeableClassNames
+ ++ ndpNames
++ [ -- Type constructors (synonyms especially)
ioTyConName, ioDataConName,
runMainIOName,
orderingTyConName,
rationalTyConName,
+ stringTyConName,
ratioDataConName,
ratioTyConName,
- byteArrayTyConName,
- mutableByteArrayTyConName,
integerTyConName, smallIntegerDataConName, largeIntegerDataConName,
-- Classes. *Must* include:
realFracClassName, -- numeric
realFloatClassName, -- numeric
dataClassName,
+ isStringClassName,
-- Numeric stuff
negateName, minusName,
fromRationalName, fromIntegerName,
geName, eqName,
+
+ -- String stuff
+ fromStringName,
-- Enum stuff
enumFromName, enumFromThenName,
-- Parallel array operations
nullPName, lengthPName, replicatePName, mapPName,
- filterPName, zipPName, crossPName, indexPName,
+ filterPName, zipPName, crossMapPName, indexPName,
toPName, bpermutePName, bpermuteDftPName, indexOfPName,
-- FFI primitive types that are not wired-in.
- stablePtrTyConName, ptrTyConName, funPtrTyConName, addrTyConName,
+ stablePtrTyConName, ptrTyConName, funPtrTyConName,
int8TyConName, int16TyConName, int32TyConName, int64TyConName,
wordTyConName, word8TyConName, word16TyConName, word32TyConName, word64TyConName,
-- Others
- otherwiseIdName,
+ otherwiseIdName, inlineIdName,
plusIntegerName, timesIntegerName,
- eqStringName, assertName, breakpointName, assertErrorName,
- runSTRepName,
+ eqStringName, assertName, breakpointName, breakpointCondName,
+ breakpointAutoName, opaqueTyConName,
+ assertErrorName, runSTRepName,
printName, fstName, sndName,
-- MonadFix
monadFixClassName, mfixName,
- -- Splittable class
- splittableClassName, splitName,
-
-- Other classes
randomClassName, randomGenClassName, monadPlusClassName,
genericTyConNames :: [Name]
genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName]
+
+ndpNames :: [Name]
+ndpNames = [ parrayTyConName, paClassName, closureTyConName
+ , mkClosureName, applyClosureName
+ , mkClosurePName, applyClosurePName
+ , lengthPAName, replicatePAName, emptyPAName ]
\end{code}
--MetaHaskell Extension Add a new module here
\begin{code}
-pRELUDE = mkModule "Prelude"
-gHC_PRIM = mkModule "GHC.Prim" -- Primitive types and values
-pREL_BASE = mkModule "GHC.Base"
-pREL_ENUM = mkModule "GHC.Enum"
-pREL_SHOW = mkModule "GHC.Show"
-pREL_READ = mkModule "GHC.Read"
-pREL_NUM = mkModule "GHC.Num"
-pREL_LIST = mkModule "GHC.List"
-pREL_PARR = mkModule "GHC.PArr"
-pREL_TUP = mkModule "Data.Tuple"
-pREL_EITHER = mkModule "Data.Either"
-pREL_PACK = mkModule "GHC.Pack"
-pREL_CONC = mkModule "GHC.Conc"
-pREL_IO_BASE = mkModule "GHC.IOBase"
-pREL_ST = mkModule "GHC.ST"
-pREL_ARR = mkModule "GHC.Arr"
-pREL_BYTEARR = mkModule "PrelByteArr"
-pREL_STABLE = mkModule "GHC.Stable"
-pREL_ADDR = mkModule "GHC.Addr"
-pREL_PTR = mkModule "GHC.Ptr"
-pREL_ERR = mkModule "GHC.Err"
-pREL_REAL = mkModule "GHC.Real"
-pREL_FLOAT = mkModule "GHC.Float"
-pREL_TOP_HANDLER= mkModule "GHC.TopHandler"
-sYSTEM_IO = mkModule "System.IO"
-dYNAMIC = mkModule "Data.Dynamic"
-tYPEABLE = mkModule "Data.Typeable"
-gENERICS = mkModule "Data.Generics.Basics"
-dOTNET = mkModule "GHC.Dotnet"
-
-rEAD_PREC = mkModule "Text.ParserCombinators.ReadPrec"
-lEX = mkModule "Text.Read.Lex"
-
-mAIN = mkModule "Main"
-pREL_INT = mkModule "GHC.Int"
-pREL_WORD = mkModule "GHC.Word"
-mONAD = mkModule "Control.Monad"
-mONAD_FIX = mkModule "Control.Monad.Fix"
-aRROW = mkModule "Control.Arrow"
-aDDR = mkModule "Addr"
-rANDOM = mkModule "System.Random"
-
-gLA_EXTS = mkModule "GHC.Exts"
-rOOT_MAIN = mkModule ":Main" -- Root module for initialisation
+pRELUDE = mkBaseModule_ pRELUDE_NAME
+gHC_PRIM = mkBaseModule FSLIT("GHC.Prim") -- Primitive types and values
+gHC_BASE = mkBaseModule FSLIT("GHC.Base")
+gHC_ENUM = mkBaseModule FSLIT("GHC.Enum")
+gHC_SHOW = mkBaseModule FSLIT("GHC.Show")
+gHC_READ = mkBaseModule FSLIT("GHC.Read")
+gHC_NUM = mkBaseModule FSLIT("GHC.Num")
+gHC_LIST = mkBaseModule FSLIT("GHC.List")
+gHC_PARR = mkBaseModule FSLIT("GHC.PArr")
+dATA_TUP = mkBaseModule FSLIT("Data.Tuple")
+dATA_EITHER = mkBaseModule FSLIT("Data.Either")
+dATA_STRING = mkBaseModule FSLIT("Data.String")
+gHC_PACK = mkBaseModule FSLIT("GHC.Pack")
+gHC_CONC = mkBaseModule FSLIT("GHC.Conc")
+gHC_IO_BASE = mkBaseModule FSLIT("GHC.IOBase")
+gHC_ST = mkBaseModule FSLIT("GHC.ST")
+gHC_ARR = mkBaseModule FSLIT("GHC.Arr")
+gHC_STABLE = mkBaseModule FSLIT("GHC.Stable")
+gHC_ADDR = mkBaseModule FSLIT("GHC.Addr")
+gHC_PTR = mkBaseModule FSLIT("GHC.Ptr")
+gHC_ERR = mkBaseModule FSLIT("GHC.Err")
+gHC_REAL = mkBaseModule FSLIT("GHC.Real")
+gHC_FLOAT = mkBaseModule FSLIT("GHC.Float")
+gHC_TOP_HANDLER = mkBaseModule FSLIT("GHC.TopHandler")
+sYSTEM_IO = mkBaseModule FSLIT("System.IO")
+dYNAMIC = mkBaseModule FSLIT("Data.Dynamic")
+tYPEABLE = mkBaseModule FSLIT("Data.Typeable")
+gENERICS = mkBaseModule FSLIT("Data.Generics.Basics")
+dOTNET = mkBaseModule FSLIT("GHC.Dotnet")
+rEAD_PREC = mkBaseModule FSLIT("Text.ParserCombinators.ReadPrec")
+lEX = mkBaseModule FSLIT("Text.Read.Lex")
+gHC_INT = mkBaseModule FSLIT("GHC.Int")
+gHC_WORD = mkBaseModule FSLIT("GHC.Word")
+mONAD = mkBaseModule FSLIT("Control.Monad")
+mONAD_FIX = mkBaseModule FSLIT("Control.Monad.Fix")
+aRROW = mkBaseModule FSLIT("Control.Arrow")
+rANDOM = mkBaseModule FSLIT("System.Random")
+gLA_EXTS = mkBaseModule FSLIT("GHC.Exts")
+
+nDP_PARRAY = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.PArray")
+nDP_CLOSURE = mkNDPModule FSLIT("Data.Array.Parallel.Lifted.Closure")
+
+mAIN = mkMainModule_ mAIN_NAME
+rOOT_MAIN = mkMainModule FSLIT(":Main") -- Root module for initialisation
+
-- The ':xxx' makes a module 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 = mkMainModule FSLIT(":Interactive")
+thFAKE = mkMainModule FSLIT(":THFake")
+
+pRELUDE_NAME = mkModuleNameFS FSLIT("Prelude")
+mAIN_NAME = mkModuleNameFS FSLIT("Main")
+
+mkBaseModule :: FastString -> Module
+mkBaseModule m = mkModule basePackageId (mkModuleNameFS m)
+
+mkBaseModule_ :: ModuleName -> Module
+mkBaseModule_ m = mkModule basePackageId m
+
+mkNDPModule :: FastString -> Module
+mkNDPModule m = mkModule ndpPackageId (mkModuleNameFS m)
+
+mkNDPModule_ :: ModuleName -> Module
+mkNDPModule_ m = mkModule ndpPackageId m
-iNTERACTIVE = mkModule ":Interactive"
-thFAKE = mkModule ":THFake"
+mkMainModule :: FastString -> Module
+mkMainModule m = mkModule mainPackageId (mkModuleNameFS m)
+
+mkMainModule_ :: ModuleName -> Module
+mkMainModule_ m = mkModule mainPackageId m
\end{code}
%************************************************************************
\begin{code}
mkTupleModule :: Boxity -> Arity -> Module
-mkTupleModule Boxed 0 = pREL_BASE
-mkTupleModule Boxed _ = pREL_TUP
+mkTupleModule Boxed 0 = gHC_BASE
+mkTupleModule Boxed _ = dATA_TUP
mkTupleModule Unboxed _ = gHC_PRIM
\end{code}
eq_RDR = nameRdrName eqName
ge_RDR = nameRdrName geName
-ne_RDR = varQual_RDR pREL_BASE FSLIT("/=")
-le_RDR = varQual_RDR pREL_BASE FSLIT("<=")
-gt_RDR = varQual_RDR pREL_BASE FSLIT(">")
-compare_RDR = varQual_RDR pREL_BASE FSLIT("compare")
-ltTag_RDR = dataQual_RDR pREL_BASE FSLIT("LT")
-eqTag_RDR = dataQual_RDR pREL_BASE FSLIT("EQ")
-gtTag_RDR = dataQual_RDR pREL_BASE FSLIT("GT")
+ne_RDR = varQual_RDR gHC_BASE FSLIT("/=")
+le_RDR = varQual_RDR gHC_BASE FSLIT("<=")
+gt_RDR = varQual_RDR gHC_BASE FSLIT(">")
+compare_RDR = varQual_RDR gHC_BASE FSLIT("compare")
+ltTag_RDR = dataQual_RDR gHC_BASE FSLIT("LT")
+eqTag_RDR = dataQual_RDR gHC_BASE FSLIT("EQ")
+gtTag_RDR = dataQual_RDR gHC_BASE FSLIT("GT")
eqClass_RDR = nameRdrName eqClassName
numClass_RDR = nameRdrName numClassName
enumClass_RDR = nameRdrName enumClassName
monadClass_RDR = nameRdrName monadClassName
-map_RDR = varQual_RDR pREL_BASE FSLIT("map")
-append_RDR = varQual_RDR pREL_BASE FSLIT("++")
+map_RDR = varQual_RDR gHC_BASE FSLIT("map")
+append_RDR = varQual_RDR gHC_BASE FSLIT("++")
foldr_RDR = nameRdrName foldrName
build_RDR = nameRdrName buildName
left_RDR = nameRdrName leftDataConName
right_RDR = nameRdrName rightDataConName
-fromEnum_RDR = varQual_RDR pREL_ENUM FSLIT("fromEnum")
-toEnum_RDR = varQual_RDR pREL_ENUM FSLIT("toEnum")
+fromEnum_RDR = varQual_RDR gHC_ENUM FSLIT("fromEnum")
+toEnum_RDR = varQual_RDR gHC_ENUM FSLIT("toEnum")
enumFrom_RDR = nameRdrName enumFromName
enumFromTo_RDR = nameRdrName enumFromToName
unpackCStringUtf8_RDR = nameRdrName unpackCStringUtf8Name
newStablePtr_RDR = nameRdrName newStablePtrName
-addrDataCon_RDR = dataQual_RDR aDDR FSLIT("A#")
-wordDataCon_RDR = dataQual_RDR pREL_WORD FSLIT("W#")
+wordDataCon_RDR = dataQual_RDR gHC_WORD FSLIT("W#")
bindIO_RDR = nameRdrName bindIOName
returnIO_RDR = nameRdrName returnIOName
fromInteger_RDR = nameRdrName fromIntegerName
fromRational_RDR = nameRdrName fromRationalName
minus_RDR = nameRdrName minusName
-times_RDR = varQual_RDR pREL_NUM FSLIT("*")
-plus_RDR = varQual_RDR pREL_NUM FSLIT("+")
-
-compose_RDR = varQual_RDR pREL_BASE FSLIT(".")
-
-not_RDR = varQual_RDR pREL_BASE FSLIT("not")
-getTag_RDR = varQual_RDR pREL_BASE FSLIT("getTag")
-succ_RDR = varQual_RDR pREL_ENUM FSLIT("succ")
-pred_RDR = varQual_RDR pREL_ENUM FSLIT("pred")
-minBound_RDR = varQual_RDR pREL_ENUM FSLIT("minBound")
-maxBound_RDR = varQual_RDR pREL_ENUM FSLIT("maxBound")
-range_RDR = varQual_RDR pREL_ARR FSLIT("range")
-inRange_RDR = varQual_RDR pREL_ARR FSLIT("inRange")
-index_RDR = varQual_RDR pREL_ARR FSLIT("index")
-unsafeIndex_RDR = varQual_RDR pREL_ARR FSLIT("unsafeIndex")
-unsafeRangeSize_RDR = varQual_RDR pREL_ARR FSLIT("unsafeRangeSize")
-
-readList_RDR = varQual_RDR pREL_READ FSLIT("readList")
-readListDefault_RDR = varQual_RDR pREL_READ FSLIT("readListDefault")
-readListPrec_RDR = varQual_RDR pREL_READ FSLIT("readListPrec")
-readListPrecDefault_RDR = varQual_RDR pREL_READ FSLIT("readListPrecDefault")
-readPrec_RDR = varQual_RDR pREL_READ FSLIT("readPrec")
-parens_RDR = varQual_RDR pREL_READ FSLIT("parens")
-choose_RDR = varQual_RDR pREL_READ FSLIT("choose")
-lexP_RDR = varQual_RDR pREL_READ FSLIT("lexP")
+times_RDR = varQual_RDR gHC_NUM FSLIT("*")
+plus_RDR = varQual_RDR gHC_NUM FSLIT("+")
+
+fromString_RDR = nameRdrName fromStringName
+
+compose_RDR = varQual_RDR gHC_BASE FSLIT(".")
+
+not_RDR = varQual_RDR gHC_BASE FSLIT("not")
+getTag_RDR = varQual_RDR gHC_BASE FSLIT("getTag")
+succ_RDR = varQual_RDR gHC_ENUM FSLIT("succ")
+pred_RDR = varQual_RDR gHC_ENUM FSLIT("pred")
+minBound_RDR = varQual_RDR gHC_ENUM FSLIT("minBound")
+maxBound_RDR = varQual_RDR gHC_ENUM FSLIT("maxBound")
+range_RDR = varQual_RDR gHC_ARR FSLIT("range")
+inRange_RDR = varQual_RDR gHC_ARR FSLIT("inRange")
+index_RDR = varQual_RDR gHC_ARR FSLIT("index")
+unsafeIndex_RDR = varQual_RDR gHC_ARR FSLIT("unsafeIndex")
+unsafeRangeSize_RDR = varQual_RDR gHC_ARR FSLIT("unsafeRangeSize")
+
+readList_RDR = varQual_RDR gHC_READ FSLIT("readList")
+readListDefault_RDR = varQual_RDR gHC_READ FSLIT("readListDefault")
+readListPrec_RDR = varQual_RDR gHC_READ FSLIT("readListPrec")
+readListPrecDefault_RDR = varQual_RDR gHC_READ FSLIT("readListPrecDefault")
+readPrec_RDR = varQual_RDR gHC_READ FSLIT("readPrec")
+parens_RDR = varQual_RDR gHC_READ FSLIT("parens")
+choose_RDR = varQual_RDR gHC_READ FSLIT("choose")
+lexP_RDR = varQual_RDR gHC_READ FSLIT("lexP")
punc_RDR = dataQual_RDR lEX FSLIT("Punc")
ident_RDR = dataQual_RDR lEX FSLIT("Ident")
reset_RDR = varQual_RDR rEAD_PREC FSLIT("reset")
prec_RDR = varQual_RDR rEAD_PREC FSLIT("prec")
-showList_RDR = varQual_RDR pREL_SHOW FSLIT("showList")
-showList___RDR = varQual_RDR pREL_SHOW FSLIT("showList__")
-showsPrec_RDR = varQual_RDR pREL_SHOW FSLIT("showsPrec")
-showString_RDR = varQual_RDR pREL_SHOW FSLIT("showString")
-showSpace_RDR = varQual_RDR pREL_SHOW FSLIT("showSpace")
-showParen_RDR = varQual_RDR pREL_SHOW FSLIT("showParen")
+showList_RDR = varQual_RDR gHC_SHOW FSLIT("showList")
+showList___RDR = varQual_RDR gHC_SHOW FSLIT("showList__")
+showsPrec_RDR = varQual_RDR gHC_SHOW FSLIT("showsPrec")
+showString_RDR = varQual_RDR gHC_SHOW FSLIT("showString")
+showSpace_RDR = varQual_RDR gHC_SHOW FSLIT("showSpace")
+showParen_RDR = varQual_RDR gHC_SHOW FSLIT("showParen")
typeOf_RDR = varQual_RDR tYPEABLE FSLIT("typeOf")
mkTypeRep_RDR = varQual_RDR tYPEABLE FSLIT("mkTyConApp")
mkTyConRep_RDR = varQual_RDR tYPEABLE FSLIT("mkTyCon")
-undefined_RDR = varQual_RDR pREL_ERR FSLIT("undefined")
+undefined_RDR = varQual_RDR gHC_ERR FSLIT("undefined")
-crossDataCon_RDR = dataQual_RDR pREL_BASE FSLIT(":*:")
-inlDataCon_RDR = dataQual_RDR pREL_BASE FSLIT("Inl")
-inrDataCon_RDR = dataQual_RDR pREL_BASE FSLIT("Inr")
-genUnitDataCon_RDR = dataQual_RDR pREL_BASE FSLIT("Unit")
+crossDataCon_RDR = dataQual_RDR gHC_BASE FSLIT(":*:")
+inlDataCon_RDR = dataQual_RDR gHC_BASE FSLIT("Inl")
+inrDataCon_RDR = dataQual_RDR gHC_BASE FSLIT("Inr")
+genUnitDataCon_RDR = dataQual_RDR gHC_BASE FSLIT("Unit")
----------------------
varQual_RDR mod str = mkOrig mod (mkOccNameFS varName str)
\begin{code}
-runMainIOName = varQual pREL_TOP_HANDLER FSLIT("runMainIO") runMainKey
+runMainIOName = varQual gHC_TOP_HANDLER FSLIT("runMainIO") runMainKey
-orderingTyConName = tcQual pREL_BASE FSLIT("Ordering") orderingTyConKey
+orderingTyConName = tcQual gHC_BASE FSLIT("Ordering") orderingTyConKey
-eitherTyConName = tcQual pREL_EITHER FSLIT("Either") eitherTyConKey
-leftDataConName = conName eitherTyConName FSLIT("Left") leftDataConKey
-rightDataConName = conName eitherTyConName FSLIT("Right") rightDataConKey
+eitherTyConName = tcQual dATA_EITHER FSLIT("Either") eitherTyConKey
+leftDataConName = conName dATA_EITHER FSLIT("Left") leftDataConKey
+rightDataConName = conName dATA_EITHER FSLIT("Right") rightDataConKey
-- Generics
-crossTyConName = tcQual pREL_BASE FSLIT(":*:") crossTyConKey
-plusTyConName = tcQual pREL_BASE FSLIT(":+:") plusTyConKey
-genUnitTyConName = tcQual pREL_BASE FSLIT("Unit") genUnitTyConKey
+crossTyConName = tcQual gHC_BASE FSLIT(":*:") crossTyConKey
+plusTyConName = tcQual gHC_BASE FSLIT(":+:") plusTyConKey
+genUnitTyConName = tcQual gHC_BASE FSLIT("Unit") genUnitTyConKey
-- Base strings Strings
-unpackCStringName = varQual pREL_BASE FSLIT("unpackCString#") unpackCStringIdKey
-unpackCStringAppendName = varQual pREL_BASE FSLIT("unpackAppendCString#") unpackCStringAppendIdKey
-unpackCStringFoldrName = varQual pREL_BASE FSLIT("unpackFoldrCString#") unpackCStringFoldrIdKey
-unpackCStringUtf8Name = varQual pREL_BASE FSLIT("unpackCStringUtf8#") unpackCStringUtf8IdKey
-eqStringName = varQual pREL_BASE FSLIT("eqString") eqStringIdKey
+unpackCStringName = varQual gHC_BASE FSLIT("unpackCString#") unpackCStringIdKey
+unpackCStringAppendName = varQual gHC_BASE FSLIT("unpackAppendCString#") unpackCStringAppendIdKey
+unpackCStringFoldrName = varQual gHC_BASE FSLIT("unpackFoldrCString#") unpackCStringFoldrIdKey
+unpackCStringUtf8Name = varQual gHC_BASE FSLIT("unpackCStringUtf8#") unpackCStringUtf8IdKey
+eqStringName = varQual gHC_BASE FSLIT("eqString") eqStringIdKey
+stringTyConName = tcQual gHC_BASE FSLIT("String") stringTyConKey
+
+-- The 'inline' function
+inlineIdName = varQual gHC_BASE FSLIT("inline") inlineIdKey
-- Base classes (Eq, Ord, Functor)
-eqClassName = clsQual pREL_BASE FSLIT("Eq") eqClassKey
-eqName = methName eqClassName FSLIT("==") eqClassOpKey
-ordClassName = clsQual pREL_BASE FSLIT("Ord") ordClassKey
-geName = methName ordClassName FSLIT(">=") geClassOpKey
-functorClassName = clsQual pREL_BASE FSLIT("Functor") functorClassKey
+eqClassName = clsQual gHC_BASE FSLIT("Eq") eqClassKey
+eqName = methName gHC_BASE FSLIT("==") eqClassOpKey
+ordClassName = clsQual gHC_BASE FSLIT("Ord") ordClassKey
+geName = methName gHC_BASE FSLIT(">=") geClassOpKey
+functorClassName = clsQual gHC_BASE FSLIT("Functor") functorClassKey
-- Class Monad
-monadClassName = clsQual pREL_BASE FSLIT("Monad") monadClassKey
-thenMName = methName monadClassName FSLIT(">>") thenMClassOpKey
-bindMName = methName monadClassName FSLIT(">>=") bindMClassOpKey
-returnMName = methName monadClassName FSLIT("return") returnMClassOpKey
-failMName = methName monadClassName FSLIT("fail") failMClassOpKey
+monadClassName = clsQual gHC_BASE FSLIT("Monad") monadClassKey
+thenMName = methName gHC_BASE FSLIT(">>") thenMClassOpKey
+bindMName = methName gHC_BASE FSLIT(">>=") bindMClassOpKey
+returnMName = methName gHC_BASE FSLIT("return") returnMClassOpKey
+failMName = methName gHC_BASE FSLIT("fail") failMClassOpKey
-- Random PrelBase functions
-otherwiseIdName = varQual pREL_BASE FSLIT("otherwise") otherwiseIdKey
-foldrName = varQual pREL_BASE FSLIT("foldr") foldrIdKey
-buildName = varQual pREL_BASE FSLIT("build") buildIdKey
-augmentName = varQual pREL_BASE FSLIT("augment") augmentIdKey
-appendName = varQual pREL_BASE FSLIT("++") appendIdKey
-andName = varQual pREL_BASE FSLIT("&&") andIdKey
-orName = varQual pREL_BASE FSLIT("||") orIdKey
-assertName = varQual pREL_BASE FSLIT("assert") assertIdKey
-breakpointName = varQual pREL_BASE FSLIT("breakpoint") breakpointIdKey
+fromStringName = methName dATA_STRING FSLIT("fromString") fromStringClassOpKey
+otherwiseIdName = varQual gHC_BASE FSLIT("otherwise") otherwiseIdKey
+foldrName = varQual gHC_BASE FSLIT("foldr") foldrIdKey
+buildName = varQual gHC_BASE FSLIT("build") buildIdKey
+augmentName = varQual gHC_BASE FSLIT("augment") augmentIdKey
+appendName = varQual gHC_BASE FSLIT("++") appendIdKey
+andName = varQual gHC_BASE FSLIT("&&") andIdKey
+orName = varQual gHC_BASE FSLIT("||") orIdKey
+assertName = varQual gHC_BASE FSLIT("assert") assertIdKey
+breakpointName = varQual gHC_BASE FSLIT("breakpoint") breakpointIdKey
+breakpointCondName= varQual gHC_BASE FSLIT("breakpointCond") breakpointCondIdKey
+breakpointAutoName= varQual gHC_BASE FSLIT("breakpointAuto") breakpointAutoIdKey
+opaqueTyConName = tcQual gHC_BASE FSLIT("Opaque") opaqueTyConKey
+
breakpointJumpName
= mkInternalName
breakpointJumpIdKey
(mkOccNameFS varName FSLIT("breakpointJump"))
- noSrcLoc
+ noSrcSpan
+breakpointCondJumpName
+ = mkInternalName
+ breakpointCondJumpIdKey
+ (mkOccNameFS varName FSLIT("breakpointCondJump"))
+ noSrcSpan
+breakpointAutoJumpName
+ = mkInternalName
+ breakpointAutoJumpIdKey
+ (mkOccNameFS varName FSLIT("breakpointAutoJump"))
+ noSrcSpan
-- PrelTup
-fstName = varQual pREL_TUP FSLIT("fst") fstIdKey
-sndName = varQual pREL_TUP FSLIT("snd") sndIdKey
+fstName = varQual dATA_TUP FSLIT("fst") fstIdKey
+sndName = varQual dATA_TUP FSLIT("snd") sndIdKey
-- Module PrelNum
-numClassName = clsQual pREL_NUM FSLIT("Num") numClassKey
-fromIntegerName = methName numClassName FSLIT("fromInteger") fromIntegerClassOpKey
-minusName = methName numClassName FSLIT("-") minusClassOpKey
-negateName = methName numClassName FSLIT("negate") negateClassOpKey
-plusIntegerName = varQual pREL_NUM FSLIT("plusInteger") plusIntegerIdKey
-timesIntegerName = varQual pREL_NUM FSLIT("timesInteger") timesIntegerIdKey
-integerTyConName = tcQual pREL_NUM FSLIT("Integer") integerTyConKey
-smallIntegerDataConName = conName integerTyConName FSLIT("S#") smallIntegerDataConKey
-largeIntegerDataConName = conName integerTyConName FSLIT("J#") largeIntegerDataConKey
+numClassName = clsQual gHC_NUM FSLIT("Num") numClassKey
+fromIntegerName = methName gHC_NUM FSLIT("fromInteger") fromIntegerClassOpKey
+minusName = methName gHC_NUM FSLIT("-") minusClassOpKey
+negateName = methName gHC_NUM FSLIT("negate") negateClassOpKey
+plusIntegerName = varQual gHC_NUM FSLIT("plusInteger") plusIntegerIdKey
+timesIntegerName = varQual gHC_NUM FSLIT("timesInteger") timesIntegerIdKey
+integerTyConName = tcQual gHC_NUM FSLIT("Integer") integerTyConKey
+smallIntegerDataConName = conName gHC_NUM FSLIT("S#") smallIntegerDataConKey
+largeIntegerDataConName = conName gHC_NUM FSLIT("J#") largeIntegerDataConKey
-- PrelReal types and classes
-rationalTyConName = tcQual pREL_REAL FSLIT("Rational") rationalTyConKey
-ratioTyConName = tcQual pREL_REAL FSLIT("Ratio") ratioTyConKey
-ratioDataConName = conName ratioTyConName FSLIT(":%") ratioDataConKey
-realClassName = clsQual pREL_REAL FSLIT("Real") realClassKey
-integralClassName = clsQual pREL_REAL FSLIT("Integral") integralClassKey
-realFracClassName = clsQual pREL_REAL FSLIT("RealFrac") realFracClassKey
-fractionalClassName = clsQual pREL_REAL FSLIT("Fractional") fractionalClassKey
-fromRationalName = methName fractionalClassName FSLIT("fromRational") fromRationalClassOpKey
+rationalTyConName = tcQual gHC_REAL FSLIT("Rational") rationalTyConKey
+ratioTyConName = tcQual gHC_REAL FSLIT("Ratio") ratioTyConKey
+ratioDataConName = conName gHC_REAL FSLIT(":%") ratioDataConKey
+realClassName = clsQual gHC_REAL FSLIT("Real") realClassKey
+integralClassName = clsQual gHC_REAL FSLIT("Integral") integralClassKey
+realFracClassName = clsQual gHC_REAL FSLIT("RealFrac") realFracClassKey
+fractionalClassName = clsQual gHC_REAL FSLIT("Fractional") fractionalClassKey
+fromRationalName = methName gHC_REAL FSLIT("fromRational") fromRationalClassOpKey
-- PrelFloat classes
-floatingClassName = clsQual pREL_FLOAT FSLIT("Floating") floatingClassKey
-realFloatClassName = clsQual pREL_FLOAT FSLIT("RealFloat") realFloatClassKey
+floatingClassName = clsQual gHC_FLOAT FSLIT("Floating") floatingClassKey
+realFloatClassName = clsQual gHC_FLOAT FSLIT("RealFloat") realFloatClassKey
-- Class Ix
-ixClassName = clsQual pREL_ARR FSLIT("Ix") ixClassKey
+ixClassName = clsQual gHC_ARR FSLIT("Ix") ixClassKey
-- Class Typeable
typeableClassName = clsQual tYPEABLE FSLIT("Typeable") typeableClassKey
dataClassName = clsQual gENERICS FSLIT("Data") dataClassKey
-- Error module
-assertErrorName = varQual pREL_ERR FSLIT("assertError") assertErrorIdKey
+assertErrorName = varQual gHC_ERR FSLIT("assertError") assertErrorIdKey
-- Enum module (Enum, Bounded)
-enumClassName = clsQual pREL_ENUM FSLIT("Enum") enumClassKey
-enumFromName = methName enumClassName FSLIT("enumFrom") enumFromClassOpKey
-enumFromToName = methName enumClassName FSLIT("enumFromTo") enumFromToClassOpKey
-enumFromThenName = methName enumClassName FSLIT("enumFromThen") enumFromThenClassOpKey
-enumFromThenToName = methName enumClassName FSLIT("enumFromThenTo") enumFromThenToClassOpKey
-boundedClassName = clsQual pREL_ENUM FSLIT("Bounded") boundedClassKey
+enumClassName = clsQual gHC_ENUM FSLIT("Enum") enumClassKey
+enumFromName = methName gHC_ENUM FSLIT("enumFrom") enumFromClassOpKey
+enumFromToName = methName gHC_ENUM FSLIT("enumFromTo") enumFromToClassOpKey
+enumFromThenName = methName gHC_ENUM FSLIT("enumFromThen") enumFromThenClassOpKey
+enumFromThenToName = methName gHC_ENUM FSLIT("enumFromThenTo") enumFromThenToClassOpKey
+boundedClassName = clsQual gHC_ENUM FSLIT("Bounded") boundedClassKey
-- List functions
-concatName = varQual pREL_LIST FSLIT("concat") concatIdKey
-filterName = varQual pREL_LIST FSLIT("filter") filterIdKey
-zipName = varQual pREL_LIST FSLIT("zip") zipIdKey
+concatName = varQual gHC_LIST FSLIT("concat") concatIdKey
+filterName = varQual gHC_LIST FSLIT("filter") filterIdKey
+zipName = varQual gHC_LIST FSLIT("zip") zipIdKey
-- Class Show
-showClassName = clsQual pREL_SHOW FSLIT("Show") showClassKey
+showClassName = clsQual gHC_SHOW FSLIT("Show") showClassKey
-- Class Read
-readClassName = clsQual pREL_READ FSLIT("Read") readClassKey
+readClassName = clsQual gHC_READ FSLIT("Read") readClassKey
-- parallel array types and functions
-enumFromToPName = varQual pREL_PARR FSLIT("enumFromToP") enumFromToPIdKey
-enumFromThenToPName= varQual pREL_PARR FSLIT("enumFromThenToP") enumFromThenToPIdKey
-nullPName = varQual pREL_PARR FSLIT("nullP") nullPIdKey
-lengthPName = varQual pREL_PARR FSLIT("lengthP") lengthPIdKey
-replicatePName = varQual pREL_PARR FSLIT("replicateP") replicatePIdKey
-mapPName = varQual pREL_PARR FSLIT("mapP") mapPIdKey
-filterPName = varQual pREL_PARR FSLIT("filterP") filterPIdKey
-zipPName = varQual pREL_PARR FSLIT("zipP") zipPIdKey
-crossPName = varQual pREL_PARR FSLIT("crossP") crossPIdKey
-indexPName = varQual pREL_PARR FSLIT("!:") indexPIdKey
-toPName = varQual pREL_PARR FSLIT("toP") toPIdKey
-bpermutePName = varQual pREL_PARR FSLIT("bpermuteP") bpermutePIdKey
-bpermuteDftPName = varQual pREL_PARR FSLIT("bpermuteDftP") bpermuteDftPIdKey
-indexOfPName = varQual pREL_PARR FSLIT("indexOfP") indexOfPIdKey
+enumFromToPName = varQual gHC_PARR FSLIT("enumFromToP") enumFromToPIdKey
+enumFromThenToPName= varQual gHC_PARR FSLIT("enumFromThenToP") enumFromThenToPIdKey
+nullPName = varQual gHC_PARR FSLIT("nullP") nullPIdKey
+lengthPName = varQual gHC_PARR FSLIT("lengthP") lengthPIdKey
+replicatePName = varQual gHC_PARR FSLIT("replicateP") replicatePIdKey
+mapPName = varQual gHC_PARR FSLIT("mapP") mapPIdKey
+filterPName = varQual gHC_PARR FSLIT("filterP") filterPIdKey
+zipPName = varQual gHC_PARR FSLIT("zipP") zipPIdKey
+crossMapPName = varQual gHC_PARR FSLIT("crossMapP") crossMapPIdKey
+indexPName = varQual gHC_PARR FSLIT("!:") indexPIdKey
+toPName = varQual gHC_PARR FSLIT("toP") toPIdKey
+bpermutePName = varQual gHC_PARR FSLIT("bpermuteP") bpermutePIdKey
+bpermuteDftPName = varQual gHC_PARR FSLIT("bpermuteDftP") bpermuteDftPIdKey
+indexOfPName = varQual gHC_PARR FSLIT("indexOfP") indexOfPIdKey
-- IOBase things
-ioTyConName = tcQual pREL_IO_BASE FSLIT("IO") ioTyConKey
-ioDataConName = conName ioTyConName FSLIT("IO") ioDataConKey
-thenIOName = varQual pREL_IO_BASE FSLIT("thenIO") thenIOIdKey
-bindIOName = varQual pREL_IO_BASE FSLIT("bindIO") bindIOIdKey
-returnIOName = varQual pREL_IO_BASE FSLIT("returnIO") returnIOIdKey
-failIOName = varQual pREL_IO_BASE FSLIT("failIO") failIOIdKey
+ioTyConName = tcQual gHC_IO_BASE FSLIT("IO") ioTyConKey
+ioDataConName = conName gHC_IO_BASE FSLIT("IO") ioDataConKey
+thenIOName = varQual gHC_IO_BASE FSLIT("thenIO") thenIOIdKey
+bindIOName = varQual gHC_IO_BASE FSLIT("bindIO") bindIOIdKey
+returnIOName = varQual gHC_IO_BASE FSLIT("returnIO") returnIOIdKey
+failIOName = varQual gHC_IO_BASE FSLIT("failIO") failIOIdKey
-- IO things
printName = varQual sYSTEM_IO FSLIT("print") printIdKey
-- Int, Word, and Addr things
-int8TyConName = tcQual pREL_INT FSLIT("Int8") int8TyConKey
-int16TyConName = tcQual pREL_INT FSLIT("Int16") int16TyConKey
-int32TyConName = tcQual pREL_INT FSLIT("Int32") int32TyConKey
-int64TyConName = tcQual pREL_INT FSLIT("Int64") int64TyConKey
+int8TyConName = tcQual gHC_INT FSLIT("Int8") int8TyConKey
+int16TyConName = tcQual gHC_INT FSLIT("Int16") int16TyConKey
+int32TyConName = tcQual gHC_INT FSLIT("Int32") int32TyConKey
+int64TyConName = tcQual gHC_INT FSLIT("Int64") int64TyConKey
-- Word module
-word8TyConName = tcQual pREL_WORD FSLIT("Word8") word8TyConKey
-word16TyConName = tcQual pREL_WORD FSLIT("Word16") word16TyConKey
-word32TyConName = tcQual pREL_WORD FSLIT("Word32") word32TyConKey
-word64TyConName = tcQual pREL_WORD FSLIT("Word64") word64TyConKey
-wordTyConName = tcQual pREL_WORD FSLIT("Word") wordTyConKey
-wordDataConName = conName wordTyConName FSLIT("W#") wordDataConKey
-
--- Addr module
-addrTyConName = tcQual aDDR FSLIT("Addr") addrTyConKey
+word8TyConName = tcQual gHC_WORD FSLIT("Word8") word8TyConKey
+word16TyConName = tcQual gHC_WORD FSLIT("Word16") word16TyConKey
+word32TyConName = tcQual gHC_WORD FSLIT("Word32") word32TyConKey
+word64TyConName = tcQual gHC_WORD FSLIT("Word64") word64TyConKey
+wordTyConName = tcQual gHC_WORD FSLIT("Word") wordTyConKey
+wordDataConName = conName gHC_WORD FSLIT("W#") wordDataConKey
-- PrelPtr module
-ptrTyConName = tcQual pREL_PTR FSLIT("Ptr") ptrTyConKey
-funPtrTyConName = tcQual pREL_PTR FSLIT("FunPtr") funPtrTyConKey
-
--- Byte array types
-byteArrayTyConName = tcQual pREL_BYTEARR FSLIT("ByteArray") byteArrayTyConKey
-mutableByteArrayTyConName = tcQual pREL_BYTEARR FSLIT("MutableByteArray") mutableByteArrayTyConKey
+ptrTyConName = tcQual gHC_PTR FSLIT("Ptr") ptrTyConKey
+funPtrTyConName = tcQual gHC_PTR FSLIT("FunPtr") funPtrTyConKey
-- Foreign objects and weak pointers
-stablePtrTyConName = tcQual pREL_STABLE FSLIT("StablePtr") stablePtrTyConKey
-newStablePtrName = varQual pREL_STABLE FSLIT("newStablePtr") newStablePtrIdKey
+stablePtrTyConName = tcQual gHC_STABLE FSLIT("StablePtr") stablePtrTyConKey
+newStablePtrName = varQual gHC_STABLE FSLIT("newStablePtr") newStablePtrIdKey
-- PrelST module
-runSTRepName = varQual pREL_ST FSLIT("runSTRep") runSTRepIdKey
-
--- The "split" Id for splittable implicit parameters
-splittableClassName = clsQual gLA_EXTS FSLIT("Splittable") splittableClassKey
-splitName = methName splittableClassName FSLIT("split") splitIdKey
+runSTRepName = varQual gHC_ST FSLIT("runSTRep") runSTRepIdKey
-- Recursive-do notation
monadFixClassName = clsQual mONAD_FIX FSLIT("MonadFix") monadFixClassKey
-mfixName = methName monadFixClassName FSLIT("mfix") mfixIdKey
+mfixName = methName mONAD_FIX FSLIT("mfix") mfixIdKey
-- Arrow notation
arrAName = varQual aRROW FSLIT("arr") arrAIdKey
monadPlusClassName = clsQual mONAD FSLIT("MonadPlus") monadPlusClassKey
randomClassName = clsQual rANDOM FSLIT("Random") randomClassKey
randomGenClassName = clsQual rANDOM FSLIT("RandomGen") randomGenClassKey
+isStringClassName = clsQual dATA_STRING FSLIT("IsString") isStringClassKey
-- dotnet interop
objectTyConName = tcQual dOTNET FSLIT("Object") objectTyConKey
marshalStringName = varQual dOTNET FSLIT("marshalString") marshalStringIdKey
unmarshalStringName = varQual dOTNET FSLIT("unmarshalString") unmarshalStringIdKey
checkDotnetResName = varQual dOTNET FSLIT("checkResult") checkDotnetResNameIdKey
+
+-- NDP stuff
+parrayTyConName = tcQual nDP_PARRAY FSLIT("PArray") parrayTyConKey
+paClassName = clsQual nDP_PARRAY FSLIT("PA") paClassKey
+lengthPAName = methName nDP_PARRAY FSLIT("lengthPA") lengthPAClassOpKey
+replicatePAName = methName nDP_PARRAY FSLIT("replicatePA") replicatePAClassOpKey
+emptyPAName = varQual nDP_PARRAY FSLIT("emptyPA") emptyPAClassOpKey
+closureTyConName = tcQual nDP_CLOSURE FSLIT(":->") closureTyConKey
+mkClosureName = varQual nDP_CLOSURE FSLIT("mkClosure") mkClosureIdKey
+applyClosureName = varQual nDP_CLOSURE FSLIT("$:") applyClosureIdKey
+mkClosurePName = varQual nDP_CLOSURE FSLIT("mkClosureP") mkClosurePIdKey
+applyClosurePName = varQual nDP_CLOSURE FSLIT("$:^") applyClosurePIdKey
\end{code}
%************************************************************************
clsQual = mk_known_key_name clsName
mk_known_key_name space mod str uniq
- = mkExternalName uniq mod (mkOccNameFS space str)
- Nothing noSrcLoc
-
-conName :: Name -> FastString -> Unique -> Name
-conName tycon occ uniq
- = mkExternalName uniq (nameModule tycon) (mkOccNameFS dataName occ)
- (Just tycon) noSrcLoc
-
-methName :: Name -> FastString -> Unique -> Name
-methName cls occ uniq
- = mkExternalName uniq (nameModule cls) (mkVarOccFS occ)
- (Just cls) noSrcLoc
+ = mkExternalName uniq mod (mkOccNameFS space str) noSrcSpan
+
+conName :: Module -> FastString -> Unique -> Name
+conName mod occ uniq
+ = mkExternalName uniq mod (mkOccNameFS dataName occ) noSrcSpan
+
+methName :: Module -> FastString -> Unique -> Name
+methName mod occ uniq
+ = mkExternalName uniq mod (mkVarOccFS occ) noSrcSpan
\end{code}
%************************************************************************
typeable7ClassKey = mkPreludeClassUnique 27
monadFixClassKey = mkPreludeClassUnique 28
-splittableClassKey = mkPreludeClassUnique 29
monadPlusClassKey = mkPreludeClassUnique 30
randomClassKey = mkPreludeClassUnique 31
randomGenClassKey = mkPreludeClassUnique 32
+
+isStringClassKey = mkPreludeClassUnique 33
+
+paClassKey = mkPreludeClassUnique 34
\end{code}
%************************************************************************
\begin{code}
addrPrimTyConKey = mkPreludeTyConUnique 1
-addrTyConKey = mkPreludeTyConUnique 2
arrayPrimTyConKey = mkPreludeTyConUnique 3
boolTyConKey = mkPreludeTyConUnique 4
byteArrayPrimTyConKey = mkPreludeTyConUnique 5
realWorldTyConKey = mkPreludeTyConUnique 34
stablePtrPrimTyConKey = mkPreludeTyConUnique 35
stablePtrTyConKey = mkPreludeTyConUnique 36
+
+anyPrimTyConKey = mkPreludeTyConUnique 37
+anyPrimTyCon1Key = mkPreludeTyConUnique 38
+
statePrimTyConKey = mkPreludeTyConUnique 50
stableNamePrimTyConKey = mkPreludeTyConUnique 51
stableNameTyConKey = mkPreludeTyConUnique 52
-mutableByteArrayTyConKey = mkPreludeTyConUnique 53
mutVarPrimTyConKey = mkPreludeTyConUnique 55
ioTyConKey = mkPreludeTyConUnique 56
-byteArrayTyConKey = mkPreludeTyConUnique 57
wordPrimTyConKey = mkPreludeTyConUnique 58
wordTyConKey = mkPreludeTyConUnique 59
word8TyConKey = mkPreludeTyConUnique 60
eitherTyConKey = mkPreludeTyConUnique 84
+-- Super Kinds constructors
+tySuperKindTyConKey = mkPreludeTyConUnique 85
+coSuperKindTyConKey = mkPreludeTyConUnique 86
+
+-- Kind constructors
+liftedTypeKindTyConKey = mkPreludeTyConUnique 87
+openTypeKindTyConKey = mkPreludeTyConUnique 88
+unliftedTypeKindTyConKey = mkPreludeTyConUnique 89
+ubxTupleKindTyConKey = mkPreludeTyConUnique 90
+argTypeKindTyConKey = mkPreludeTyConUnique 91
+
+-- Coercion constructors
+symCoercionTyConKey = mkPreludeTyConUnique 93
+transCoercionTyConKey = mkPreludeTyConUnique 94
+leftCoercionTyConKey = mkPreludeTyConUnique 95
+rightCoercionTyConKey = mkPreludeTyConUnique 96
+instCoercionTyConKey = mkPreludeTyConUnique 97
+unsafeCoercionTyConKey = mkPreludeTyConUnique 98
+
+unknownTyConKey = mkPreludeTyConUnique 99
+unknown1TyConKey = mkPreludeTyConUnique 130
+unknown2TyConKey = mkPreludeTyConUnique 131
+unknown3TyConKey = mkPreludeTyConUnique 132
+opaqueTyConKey = mkPreludeTyConUnique 133
+
+stringTyConKey = mkPreludeTyConUnique 134
+
+parrayTyConKey = mkPreludeTyConUnique 135
+closureTyConKey = mkPreludeTyConUnique 136
+
+
---------------- Template Haskell -------------------
-- USES TyConUniques 100-129
-----------------------------------------------------
failIOIdKey = mkPreludeMiscIdUnique 44
nullAddrIdKey = mkPreludeMiscIdUnique 46
voidArgIdKey = mkPreludeMiscIdUnique 47
-splitIdKey = mkPreludeMiscIdUnique 48
fstIdKey = mkPreludeMiscIdUnique 49
sndIdKey = mkPreludeMiscIdUnique 50
otherwiseIdKey = mkPreludeMiscIdUnique 51
assertErrorIdKey = mkPreludeMiscIdUnique 61
breakpointIdKey = mkPreludeMiscIdUnique 62
-breakpointJumpIdKey = mkPreludeMiscIdUnique 63
+breakpointCondIdKey = mkPreludeMiscIdUnique 63
+breakpointAutoIdKey = mkPreludeMiscIdUnique 64
+breakpointJumpIdKey = mkPreludeMiscIdUnique 65
+breakpointCondJumpIdKey = mkPreludeMiscIdUnique 66
+breakpointAutoJumpIdKey = mkPreludeMiscIdUnique 67
+
+inlineIdKey = mkPreludeMiscIdUnique 68
-- Parallel array functions
nullPIdKey = mkPreludeMiscIdUnique 80
mapPIdKey = mkPreludeMiscIdUnique 83
filterPIdKey = mkPreludeMiscIdUnique 84
zipPIdKey = mkPreludeMiscIdUnique 85
-crossPIdKey = mkPreludeMiscIdUnique 86
+crossMapPIdKey = mkPreludeMiscIdUnique 86
indexPIdKey = mkPreludeMiscIdUnique 87
toPIdKey = mkPreludeMiscIdUnique 88
enumFromToPIdKey = mkPreludeMiscIdUnique 89
choiceAIdKey = mkPreludeMiscIdUnique 123 -- |||
loopAIdKey = mkPreludeMiscIdUnique 124
+fromStringClassOpKey = mkPreludeMiscIdUnique 125
+
+-- Flattened parallel array functions
+mkClosureIdKey = mkPreludeMiscIdUnique 126
+applyClosureIdKey = mkPreludeMiscIdUnique 127
+mkClosurePIdKey = mkPreludeMiscIdUnique 128
+applyClosurePIdKey = mkPreludeMiscIdUnique 129
+closurePAIdKey = mkPreludeMiscIdUnique 130
+lengthPAClassOpKey = mkPreludeMiscIdUnique 131
+replicatePAClassOpKey = mkPreludeMiscIdUnique 132
+emptyPAClassOpKey = mkPreludeMiscIdUnique 133
+
---------------- Template Haskell -------------------
-- USES IdUniques 200-399
-----------------------------------------------------
\begin{code}
numericTyKeys =
- [ addrTyConKey
- , wordTyConKey
+ [ wordTyConKey
, intTyConKey
, integerTyConKey
, doubleTyConKey
, floatTyConKey
]
-
- -- Renamer always imports these data decls replete with constructors
- -- so that desugarer can always see their constructors. Ugh!
-cCallishTyKeys =
- [ addrTyConKey
- , wordTyConKey
- , byteArrayTyConKey
- , mutableByteArrayTyConKey
- , stablePtrTyConKey
- , int8TyConKey
- , int16TyConKey
- , int32TyConKey
- , int64TyConKey
- , word8TyConKey
- , word16TyConKey
- , word32TyConKey
- , word64TyConKey
- ]
\end{code}
standardClassKeys = derivableClassKeys ++ numericClassKeys
++ [randomClassKey, randomGenClassKey,
functorClassKey,
- monadClassKey, monadPlusClassKey]
+ monadClassKey, monadPlusClassKey,
+ isStringClassKey
+ ]
\end{code}
@derivableClassKeys@ is also used in checking \tr{deriving} constructs