\begin{code}
+{-# OPTIONS -w #-}
+-- The above warning supression flag is a temporary kludge.
+-- While working on this module you are encouraged to remove it and fix
+-- any warnings in the module. See
+-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
+-- for details
+
module PrelNames (
Unique, Uniquable(..), hasKey, -- Re-exported for convenience
#include "HsVersions.h"
-import PackageConfig
-import Module ( Module, ModuleName, mkModule, mkModuleNameFS )
-import OccName ( dataName, tcName, clsName, varName, mkOccNameFS,
- mkVarOccFS )
+import Module
+import OccName ( dataName, tcName, clsName, varName, tvName,
+ mkOccNameFS, mkVarOccFS )
import RdrName ( RdrName, nameRdrName, mkOrig, rdrNameOcc, mkUnqual )
import Unique ( Unique, Uniquable(..), hasKey,
mkPreludeMiscIdUnique, mkPreludeDataConUnique,
)
import BasicTypes ( Boxity(..), Arity )
import Name ( Name, mkInternalName, mkExternalName )
-import SrcLoc ( noSrcLoc )
+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
-- Stable pointers
newStablePtrName,
+ -- GHC Extensions
+ groupWithName,
+
-- Strings and lists
unpackCStringName, unpackCStringAppendName,
unpackCStringFoldrName, unpackCStringUtf8Name,
-- List operations
- concatName, filterName,
+ concatName, filterName, mapName,
zipName, foldrName, buildName, augmentName, appendName,
-- Parallel array operations
- nullPName, lengthPName, replicatePName, mapPName,
- filterPName, zipPName, crossPName, indexPName,
+ nullPName, lengthPName, replicatePName, singletonPName, mapPName,
+ filterPName, zipPName, crossMapPName, indexPName,
toPName, bpermutePName, bpermuteDftPName, indexOfPName,
-- FFI primitive types that are not wired-in.
wordTyConName, word8TyConName, word16TyConName, word32TyConName, word64TyConName,
-- Others
- otherwiseIdName,
+ otherwiseIdName, inlineIdName,
plusIntegerName, timesIntegerName,
eqStringName, assertName, breakpointName, breakpointCondName,
- breakpointAutoName, opaqueTyConName, unknownTyConName,
- unknown1TyConName, unknown2TyConName, unknown3TyConName,
+ breakpointAutoName, opaqueTyConName,
assertErrorName, runSTRepName,
printName, fstName, sndName,
gENERICS = mkBaseModule FSLIT("Data.Generics.Basics")
dOTNET = mkBaseModule FSLIT("GHC.Dotnet")
rEAD_PREC = mkBaseModule FSLIT("Text.ParserCombinators.ReadPrec")
-lEX = mkBaseModule FSLIT("Text.Read.Lex")
+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")
+gHC_DESUGAR = mkBaseModule FSLIT("GHC.Desugar")
rANDOM = mkBaseModule FSLIT("System.Random")
-gLA_EXTS = mkBaseModule FSLIT("GHC.Exts")
+gHC_EXTS = mkBaseModule FSLIT("GHC.Exts")
mAIN = mkMainModule_ mAIN_NAME
rOOT_MAIN = mkMainModule FSLIT(":Main") -- Root module for initialisation
%************************************************************************
\begin{code}
-main_RDR_Unqual = mkUnqual varName FSLIT("main")
+main_RDR_Unqual = mkUnqual varName FSLIT("main")
-- We definitely don't want an Orig RdrName, because
-- main might, in principle, be imported into module Main
+forall_tv_RDR, dot_tv_RDR :: RdrName
+forall_tv_RDR = mkUnqual tvName FSLIT("forall")
+dot_tv_RDR = mkUnqual tvName FSLIT(".")
+
eq_RDR = nameRdrName eqName
ge_RDR = nameRdrName geName
ne_RDR = varQual_RDR gHC_BASE FSLIT("/=")
returnMName = methName gHC_BASE FSLIT("return") returnMClassOpKey
failMName = methName gHC_BASE FSLIT("fail") failMClassOpKey
+-- Functions for GHC extensions
+groupWithName = varQual gHC_EXTS FSLIT("groupWith") groupWithIdKey
+
-- Random PrelBase functions
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
+mapName = varQual gHC_BASE FSLIT("map") mapIdKey
appendName = varQual gHC_BASE FSLIT("++") appendIdKey
andName = varQual gHC_BASE FSLIT("&&") andIdKey
orName = varQual gHC_BASE FSLIT("||") orIdKey
breakpointName = varQual gHC_BASE FSLIT("breakpoint") breakpointIdKey
breakpointCondName= varQual gHC_BASE FSLIT("breakpointCond") breakpointCondIdKey
breakpointAutoName= varQual gHC_BASE FSLIT("breakpointAuto") breakpointAutoIdKey
-unknownTyConName = tcQual gHC_BASE FSLIT("Unknown") unknownTyConKey
-unknown1TyConName = tcQual gHC_BASE FSLIT("Unknown1") unknown1TyConKey
-unknown2TyConName = tcQual gHC_BASE FSLIT("Unknown2") unknown2TyConKey
-unknown3TyConName = tcQual gHC_BASE FSLIT("Unknown3") unknown3TyConKey
opaqueTyConName = tcQual gHC_BASE FSLIT("Opaque") opaqueTyConKey
breakpointJumpName
= mkInternalName
breakpointJumpIdKey
(mkOccNameFS varName FSLIT("breakpointJump"))
- noSrcLoc
+ noSrcSpan
breakpointCondJumpName
= mkInternalName
breakpointCondJumpIdKey
(mkOccNameFS varName FSLIT("breakpointCondJump"))
- noSrcLoc
+ noSrcSpan
breakpointAutoJumpName
= mkInternalName
breakpointAutoJumpIdKey
(mkOccNameFS varName FSLIT("breakpointAutoJump"))
- noSrcLoc
+ noSrcSpan
-- PrelTup
fstName = varQual dATA_TUP FSLIT("fst") fstIdKey
enumFromThenToPName= varQual gHC_PARR FSLIT("enumFromThenToP") enumFromThenToPIdKey
nullPName = varQual gHC_PARR FSLIT("nullP") nullPIdKey
lengthPName = varQual gHC_PARR FSLIT("lengthP") lengthPIdKey
+singletonPName = varQual gHC_PARR FSLIT("singletonP") singletonPIdKey
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
-crossPName = varQual gHC_PARR FSLIT("crossP") crossPIdKey
+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
-- Arrow notation
arrAName = varQual aRROW FSLIT("arr") arrAIdKey
-composeAName = varQual aRROW FSLIT(">>>") composeAIdKey
+composeAName = varQual gHC_DESUGAR FSLIT(">>>") composeAIdKey
firstAName = varQual aRROW FSLIT("first") firstAIdKey
appAName = varQual aRROW FSLIT("app") appAIdKey
choiceAName = varQual aRROW FSLIT("|||") choiceAIdKey
monadPlusClassName = clsQual mONAD FSLIT("MonadPlus") monadPlusClassKey
randomClassName = clsQual rANDOM FSLIT("Random") randomClassKey
randomGenClassName = clsQual rANDOM FSLIT("RandomGen") randomGenClassKey
-isStringClassName = clsQual gHC_BASE FSLIT("IsString") isStringClassKey
+isStringClassName = clsQual dATA_STRING FSLIT("IsString") isStringClassKey
-- dotnet interop
objectTyConName = tcQual dOTNET FSLIT("Object") objectTyConKey
clsQual = mk_known_key_name clsName
mk_known_key_name space mod str uniq
- = mkExternalName uniq mod (mkOccNameFS space str) noSrcLoc
+ = mkExternalName uniq mod (mkOccNameFS space str) noSrcSpan
conName :: Module -> FastString -> Unique -> Name
conName mod occ uniq
- = mkExternalName uniq mod (mkOccNameFS dataName occ) noSrcLoc
+ = mkExternalName uniq mod (mkOccNameFS dataName occ) noSrcSpan
methName :: Module -> FastString -> Unique -> Name
methName mod occ uniq
- = mkExternalName uniq mod (mkVarOccFS occ) noSrcLoc
+ = mkExternalName uniq mod (mkVarOccFS occ) noSrcSpan
\end{code}
%************************************************************************
stringTyConKey = mkPreludeTyConUnique 134
-
---------------- Template Haskell -------------------
-- USES TyConUniques 100-129
-----------------------------------------------------
inlineIdKey = mkPreludeMiscIdUnique 68
+mapIdKey = mkPreludeMiscIdUnique 69
+groupWithIdKey = mkPreludeMiscIdUnique 70
+
-- Parallel array functions
+singletonPIdKey = mkPreludeMiscIdUnique 79
nullPIdKey = mkPreludeMiscIdUnique 80
lengthPIdKey = mkPreludeMiscIdUnique 81
replicatePIdKey = mkPreludeMiscIdUnique 82
mapPIdKey = mkPreludeMiscIdUnique 83
filterPIdKey = mkPreludeMiscIdUnique 84
zipPIdKey = mkPreludeMiscIdUnique 85
-crossPIdKey = mkPreludeMiscIdUnique 86
+crossMapPIdKey = mkPreludeMiscIdUnique 86
indexPIdKey = mkPreludeMiscIdUnique 87
toPIdKey = mkPreludeMiscIdUnique 88
enumFromToPIdKey = mkPreludeMiscIdUnique 89