{-
(c) The GRASP/AQUA Project, Glasgow University, 1992-1998

\section[GHC.Builtin.Names]{Definitions of prelude modules and names}


Nota Bene: all Names defined in here should come from the base package

 - ModuleNames for prelude modules,
        e.g.    pREL_BASE_Name :: ModuleName

 - Modules for prelude modules
        e.g.    pREL_Base :: Module

 - Uniques for Ids, DataCons, TyCons and Classes that the compiler
   "knows about" in some way
        e.g.    intTyConKey :: Unique
                minusClassOpKey :: Unique

 - Names for Ids, DataCons, TyCons and Classes that the compiler
   "knows about" in some way
        e.g.    intTyConName :: Name
                minusName    :: Name
   One of these Names contains
        (a) the module and occurrence name of the thing
        (b) its Unique
   The way the compiler "knows about" one of these things is
   where the type checker or desugarer needs to look it up. For
   example, when desugaring list comprehensions the desugarer
   needs to conjure up 'foldr'.  It does this by looking up
   foldrName in the environment.

 - RdrNames for Ids, DataCons etc that the compiler may emit into
   generated code (e.g. for deriving).  It's not necessary to know
   the uniques for these guys, only their names


Note [Known-key names]
~~~~~~~~~~~~~~~~~~~~~~
It is *very* important that the compiler gives wired-in things and
things with "known-key" names the correct Uniques wherever they
occur. We have to be careful about this in exactly two places:

  1. When we parse some source code, renaming the AST better yield an
     AST whose Names have the correct uniques

  2. When we read an interface file, the read-in gubbins better have
     the right uniques

This is accomplished through a combination of mechanisms:

  1. When parsing source code, the RdrName-decorated AST has some
     RdrNames which are Exact. These are wired-in RdrNames where
     we could directly tell from the parsed syntax what Name to
     use. For example, when we parse a [] in a type we can just insert
     an Exact RdrName Name with the listTyConKey.

     Currently, I believe this is just an optimisation: it would be
     equally valid to just output Orig RdrNames that correctly record
     the module etc we expect the final Name to come from. However,
     were we to eliminate isBuiltInOcc_maybe it would become essential
     (see point 3).

  2. The knownKeyNames (which consist of the basicKnownKeyNames from
     the module, and those names reachable via the wired-in stuff from
     GHC.Builtin.Types) are used to initialise the "OrigNameCache" in
     GHC.Iface.Env.  This initialization ensures that when the type checker
     or renamer (both of which use GHC.Iface.Env) look up an original name
     (i.e. a pair of a Module and an OccName) for a known-key name
     they get the correct Unique.

     This is the most important mechanism for ensuring that known-key
     stuff gets the right Unique, and is why it is so important to
     place your known-key names in the appropriate lists.

  3. For "infinite families" of known-key names (i.e. tuples and sums), we
     have to be extra careful. Because there are an infinite number of
     these things, we cannot add them to the list of known-key names
     used to initialise the OrigNameCache. Instead, we have to
     rely on never having to look them up in that cache. See
     Note [Infinite families of known-key names] for details.


Note [Infinite families of known-key names]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Infinite families of known-key things (e.g. tuples and sums) pose a tricky
problem: we can't add them to the knownKeyNames finite map which we use to
ensure that, e.g., a reference to (,) gets assigned the right unique (if this
doesn't sound familiar see Note [Known-key names] above).

We instead handle tuples and sums separately from the "vanilla" known-key
things,

  a) The parser recognises them specially and generates an Exact Name (hence not
     looked up in the orig-name cache)

  b) The known infinite families of names are specially serialised by
     GHC.Iface.Binary.putName, with that special treatment detected when we read
     back to ensure that we get back to the correct uniques. See Note [Symbol
     table representation of names] in GHC.Iface.Binary and Note [How tuples
     work] in GHC.Builtin.Types.

Most of the infinite families cannot occur in source code, so mechanisms (a) and (b)
suffice to ensure that they always have the right Unique. In particular,
implicit param TyCon names, constraint tuples and Any TyCons cannot be mentioned
by the user. For those things that *can* appear in source programs,

  c) GHC.Iface.Env.lookupOrigNameCache uses isBuiltInOcc_maybe to map built-in syntax
     directly onto the corresponding name, rather than trying to find it in the
     original-name cache.

     See also Note [Built-in syntax and the OrigNameCache]

Note that one-tuples are an exception to the rule, as they do get assigned
known keys. See
Note [One-tuples] (Wrinkle: Make boxed one-tuple names have known keys)
in GHC.Builtin.Types.

-}

{-# LANGUAGE CPP #-}
{-# OPTIONS_GHC -Wno-incomplete-uni-patterns   #-}

module GHC.Builtin.Names
   ( Unique, Uniquable(..), hasKey,  -- Re-exported for convenience

   -----------------------------------------------------------
   module GHC.Builtin.Names, -- 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
   )
where

import GHC.Prelude

import GHC.Unit.Types
import GHC.Types.Name.Occurrence
import GHC.Types.Name.Reader
import GHC.Types.Unique
import GHC.Builtin.Uniques
import GHC.Types.Name
import GHC.Types.SrcLoc
import GHC.Data.FastString

import Language.Haskell.Syntax.Module.Name

{-
************************************************************************
*                                                                      *
     allNameStrings
*                                                                      *
************************************************************************
-}

allNameStrings :: [String]
-- Infinite list of a,b,c...z, aa, ab, ac, ... etc
allNameStrings :: [String]
allNameStrings = [ Char
cforall a. a -> [a] -> [a]
:String
cs | String
cs <- String
"" forall a. a -> [a] -> [a]
: [String]
allNameStrings, Char
c <- [Char
'a'..Char
'z'] ]

{-
************************************************************************
*                                                                      *
\subsection{Local Names}
*                                                                      *
************************************************************************

This *local* name is used by the interactive stuff
-}

itName :: Unique -> SrcSpan -> Name
itName :: Unique -> SrcSpan -> Name
itName Unique
uniq SrcSpan
loc = Unique -> OccName -> SrcSpan -> Name
mkInternalName Unique
uniq (NameSpace -> FastString -> OccName
mkOccNameFS NameSpace
varName (String -> FastString
fsLit String
"it")) SrcSpan
loc

-- mkUnboundName makes a place-holder Name; it shouldn't be looked at except possibly
-- during compiler debugging.
mkUnboundName :: OccName -> Name
mkUnboundName :: OccName -> Name
mkUnboundName OccName
occ = Unique -> OccName -> SrcSpan -> Name
mkInternalName Unique
unboundKey OccName
occ SrcSpan
noSrcSpan

isUnboundName :: Name -> Bool
isUnboundName :: Name -> Bool
isUnboundName Name
name = Name
name forall a. Uniquable a => a -> Unique -> Bool
`hasKey` Unique
unboundKey

{-
************************************************************************
*                                                                      *
\subsection{Known key Names}
*                                                                      *
************************************************************************

This section tells what the compiler knows about the association of
names with uniques.  These ones are the *non* wired-in ones.  The
wired in ones are defined in GHC.Builtin.Types etc.
-}

basicKnownKeyNames :: [Name]  -- See Note [Known-key names]
basicKnownKeyNames :: [Name]
basicKnownKeyNames
 = [Name]
genericTyConNames
 forall a. [a] -> [a] -> [a]
++ [   --  Classes.  *Must* include:
        --      classes that are grabbed by key (e.g., eqClassKey)
        --      classes in "Class.standardClassKeys" (quite a few)
        Name
eqClassName,                    -- mentioned, derivable
        Name
ordClassName,                   -- derivable
        Name
boundedClassName,               -- derivable
        Name
numClassName,                   -- mentioned, numeric
        Name
enumClassName,                  -- derivable
        Name
monadClassName,
        Name
functorClassName,
        Name
realClassName,                  -- numeric
        Name
integralClassName,              -- numeric
        Name
fractionalClassName,            -- numeric
        Name
floatingClassName,              -- numeric
        Name
realFracClassName,              -- numeric
        Name
realFloatClassName,             -- numeric
        Name
dataClassName,
        Name
isStringClassName,
        Name
applicativeClassName,
        Name
alternativeClassName,
        Name
foldableClassName,
        Name
traversableClassName,
        Name
semigroupClassName, Name
sappendName,
        Name
monoidClassName, Name
memptyName, Name
mappendName, Name
mconcatName,

        -- The IO type
        Name
ioTyConName, Name
ioDataConName,
        Name
runMainIOName,
        Name
runRWName,

        -- Type representation types
        Name
trModuleTyConName, Name
trModuleDataConName,
        Name
trNameTyConName, Name
trNameSDataConName, Name
trNameDDataConName,
        Name
trTyConTyConName, Name
trTyConDataConName,

        -- Typeable
        Name
typeableClassName,
        Name
typeRepTyConName,
        Name
someTypeRepTyConName,
        Name
someTypeRepDataConName,
        Name
kindRepTyConName,
        Name
kindRepTyConAppDataConName,
        Name
kindRepVarDataConName,
        Name
kindRepAppDataConName,
        Name
kindRepFunDataConName,
        Name
kindRepTYPEDataConName,
        Name
kindRepTypeLitSDataConName,
        Name
kindRepTypeLitDDataConName,
        Name
typeLitSortTyConName,
        Name
typeLitSymbolDataConName,
        Name
typeLitNatDataConName,
        Name
typeLitCharDataConName,
        Name
typeRepIdName,
        Name
mkTrTypeName,
        Name
mkTrConName,
        Name
mkTrAppName,
        Name
mkTrFunName,
        Name
typeSymbolTypeRepName, Name
typeNatTypeRepName, Name
typeCharTypeRepName,
        Name
trGhcPrimModuleName,

        -- KindReps for common cases
        Name
starKindRepName,
        Name
starArrStarKindRepName,
        Name
starArrStarArrStarKindRepName,

        -- WithDict
        Name
withDictClassName,

        -- Dynamic
        Name
toDynName,

        -- Numeric stuff
        Name
negateName, Name
minusName, Name
geName, Name
eqName,
        Name
mkRationalBase2Name, Name
mkRationalBase10Name,

        -- Conversion functions
        Name
rationalTyConName,
        Name
ratioTyConName, Name
ratioDataConName,
        Name
fromRationalName, Name
fromIntegerName,
        Name
toIntegerName, Name
toRationalName,
        Name
fromIntegralName, Name
realToFracName,

        -- Int# stuff
        Name
divIntName, Name
modIntName,

        -- String stuff
        Name
fromStringName,

        -- Enum stuff
        Name
enumFromName, Name
enumFromThenName,
        Name
enumFromThenToName, Name
enumFromToName,

        -- Applicative stuff
        Name
pureAName, Name
apAName, Name
thenAName,

        -- Functor stuff
        Name
fmapName,

        -- Monad stuff
        Name
thenIOName, Name
bindIOName, Name
returnIOName, Name
failIOName, Name
bindMName, Name
thenMName,
        Name
returnMName, Name
joinMName,

        -- MonadFail
        Name
monadFailClassName, Name
failMName,

        -- MonadFix
        Name
monadFixClassName, Name
mfixName,

        -- Arrow stuff
        Name
arrAName, Name
composeAName, Name
firstAName,
        Name
appAName, Name
choiceAName, Name
loopAName,

        -- Ix stuff
        Name
ixClassName,

        -- Show stuff
        Name
showClassName,

        -- Read stuff
        Name
readClassName,

        -- Stable pointers
        Name
newStablePtrName,

        -- GHC Extensions
        Name
considerAccessibleName,

        -- Strings and lists
        Name
unpackCStringName, Name
unpackCStringUtf8Name,
        Name
unpackCStringAppendName, Name
unpackCStringAppendUtf8Name,
        Name
unpackCStringFoldrName, Name
unpackCStringFoldrUtf8Name,
        Name
cstringLengthName,

        -- Overloaded lists
        Name
isListClassName,
        Name
fromListName,
        Name
fromListNName,
        Name
toListName,

        -- Overloaded record dot, record update
        Name
getFieldName, Name
setFieldName,

        -- List operations
        Name
concatName, Name
filterName, Name
mapName,
        Name
zipName, Name
foldrName, Name
buildName, Name
augmentName, Name
appendName,

        -- FFI primitive types that are not wired-in.
        Name
stablePtrTyConName, Name
ptrTyConName, Name
funPtrTyConName,
        Name
int8TyConName, Name
int16TyConName, Name
int32TyConName, Name
int64TyConName,
        Name
word8TyConName, Name
word16TyConName, Name
word32TyConName, Name
word64TyConName,

        -- Others
        Name
otherwiseIdName, Name
inlineIdName,
        Name
eqStringName, Name
assertName,
        Name
assertErrorName, Name
traceName,
        Name
printName,
        Name
dollarName,

        -- ghc-bignum
        Name
integerFromNaturalName,
        Name
integerToNaturalClampName,
        Name
integerToNaturalThrowName,
        Name
integerToNaturalName,
        Name
integerToWordName,
        Name
integerToIntName,
        Name
integerToWord64Name,
        Name
integerToInt64Name,
        Name
integerFromWordName,
        Name
integerFromWord64Name,
        Name
integerFromInt64Name,
        Name
integerAddName,
        Name
integerMulName,
        Name
integerSubName,
        Name
integerNegateName,
        Name
integerAbsName,
        Name
integerPopCountName,
        Name
integerQuotName,
        Name
integerRemName,
        Name
integerDivName,
        Name
integerModName,
        Name
integerDivModName,
        Name
integerQuotRemName,
        Name
integerEncodeFloatName,
        Name
integerEncodeDoubleName,
        Name
integerGcdName,
        Name
integerLcmName,
        Name
integerAndName,
        Name
integerOrName,
        Name
integerXorName,
        Name
integerComplementName,
        Name
integerBitName,
        Name
integerTestBitName,
        Name
integerShiftLName,
        Name
integerShiftRName,

        Name
naturalToWordName,
        Name
naturalPopCountName,
        Name
naturalShiftRName,
        Name
naturalShiftLName,
        Name
naturalAddName,
        Name
naturalSubName,
        Name
naturalSubThrowName,
        Name
naturalSubUnsafeName,
        Name
naturalMulName,
        Name
naturalQuotRemName,
        Name
naturalQuotName,
        Name
naturalRemName,
        Name
naturalAndName,
        Name
naturalAndNotName,
        Name
naturalOrName,
        Name
naturalXorName,
        Name
naturalTestBitName,
        Name
naturalBitName,
        Name
naturalGcdName,
        Name
naturalLcmName,
        Name
naturalLog2Name,
        Name
naturalLogBaseWordName,
        Name
naturalLogBaseName,
        Name
naturalPowModName,
        Name
naturalSizeInBaseName,

        Name
bignatFromWordListName,
        Name
bignatEqName,

        -- Float/Double
        Name
integerToFloatName,
        Name
integerToDoubleName,
        Name
naturalToFloatName,
        Name
naturalToDoubleName,
        Name
rationalToFloatName,
        Name
rationalToDoubleName,

        -- Other classes
        Name
monadPlusClassName,

        -- Type-level naturals
        Name
knownNatClassName, Name
knownSymbolClassName, Name
knownCharClassName,

        -- Overloaded labels
        Name
fromLabelClassOpName,

        -- Implicit Parameters
        Name
ipClassName,

        -- Overloaded record fields
        Name
hasFieldClassName,

        -- Call Stacks
        Name
callStackTyConName,
        Name
emptyCallStackName, Name
pushCallStackName,

        -- Source Locations
        Name
srcLocDataConName,

        -- Annotation type checking
        Name
toAnnotationWrapperName

        -- The SPEC type for SpecConstr
        , Name
specTyConName

        -- The Either type
        , Name
eitherTyConName, Name
leftDataConName, Name
rightDataConName

        -- The Void type
        , Name
voidTyConName

        -- Plugins
        , Name
pluginTyConName
        , Name
frontendPluginTyConName

        -- Generics
        , Name
genClassName, Name
gen1ClassName
        , Name
datatypeClassName, Name
constructorClassName, Name
selectorClassName

        -- Monad comprehensions
        , Name
guardMName
        , Name
liftMName
        , Name
mzipName

        -- GHCi Sandbox
        , Name
ghciIoClassName, Name
ghciStepIoMName

        -- StaticPtr
        , Name
makeStaticName
        , Name
staticPtrTyConName
        , Name
staticPtrDataConName, Name
staticPtrInfoDataConName
        , Name
fromStaticPtrName

        -- Fingerprint
        , Name
fingerprintDataConName

        -- Custom type errors
        , Name
errorMessageTypeErrorFamName
        , Name
typeErrorTextDataConName
        , Name
typeErrorAppendDataConName
        , Name
typeErrorVAppendDataConName
        , Name
typeErrorShowTypeDataConName

        -- Unsafe coercion proofs
        , Name
unsafeEqualityProofName
        , Name
unsafeEqualityTyConName
        , Name
unsafeReflDataConName
        , Name
unsafeCoercePrimName
    ]

genericTyConNames :: [Name]
genericTyConNames :: [Name]
genericTyConNames = [
    Name
v1TyConName, Name
u1TyConName, Name
par1TyConName, Name
rec1TyConName,
    Name
k1TyConName, Name
m1TyConName, Name
sumTyConName, Name
prodTyConName,
    Name
compTyConName, Name
rTyConName, Name
dTyConName,
    Name
cTyConName, Name
sTyConName, Name
rec0TyConName,
    Name
d1TyConName, Name
c1TyConName, Name
s1TyConName,
    Name
repTyConName, Name
rep1TyConName, Name
uRecTyConName,
    Name
uAddrTyConName, Name
uCharTyConName, Name
uDoubleTyConName,
    Name
uFloatTyConName, Name
uIntTyConName, Name
uWordTyConName,
    Name
prefixIDataConName, Name
infixIDataConName, Name
leftAssociativeDataConName,
    Name
rightAssociativeDataConName, Name
notAssociativeDataConName,
    Name
sourceUnpackDataConName, Name
sourceNoUnpackDataConName,
    Name
noSourceUnpackednessDataConName, Name
sourceLazyDataConName,
    Name
sourceStrictDataConName, Name
noSourceStrictnessDataConName,
    Name
decidedLazyDataConName, Name
decidedStrictDataConName, Name
decidedUnpackDataConName,
    Name
metaDataDataConName, Name
metaConsDataConName, Name
metaSelDataConName
  ]

{-
************************************************************************
*                                                                      *
\subsection{Module names}
*                                                                      *
************************************************************************


--MetaHaskell Extension Add a new module here
-}

pRELUDE :: Module
pRELUDE :: Module
pRELUDE         = ModuleName -> Module
mkBaseModule_ ModuleName
pRELUDE_NAME

gHC_PRIM, gHC_PRIM_PANIC,
    gHC_TYPES, gHC_GENERICS, gHC_MAGIC, gHC_MAGIC_DICT,
    gHC_CLASSES, gHC_PRIMOPWRAPPERS, gHC_BASE, gHC_ENUM,
    gHC_GHCI, gHC_GHCI_HELPERS, gHC_CSTRING,
    gHC_SHOW, gHC_READ, gHC_NUM, gHC_MAYBE,
    gHC_NUM_INTEGER, gHC_NUM_NATURAL, gHC_NUM_BIGNAT,
    gHC_LIST, gHC_TUPLE, gHC_TUPLE_PRIM, dATA_EITHER, dATA_VOID, dATA_LIST, dATA_STRING,
    dATA_FOLDABLE, dATA_TRAVERSABLE,
    gHC_CONC, gHC_IO, gHC_IO_Exception,
    gHC_ST, gHC_IX, gHC_STABLE, gHC_PTR, gHC_ERR, gHC_REAL,
    gHC_FLOAT, gHC_TOP_HANDLER, sYSTEM_IO, dYNAMIC,
    tYPEABLE, tYPEABLE_INTERNAL, gENERICS,
    rEAD_PREC, lEX, gHC_INT, gHC_WORD, mONAD, mONAD_FIX, mONAD_ZIP, mONAD_FAIL,
    aRROW, gHC_DESUGAR, rANDOM, gHC_EXTS, gHC_IS_LIST,
    cONTROL_EXCEPTION_BASE, gHC_TYPEERROR, gHC_TYPELITS, gHC_TYPELITS_INTERNAL,
    gHC_TYPENATS, gHC_TYPENATS_INTERNAL,
    dATA_COERCE, dEBUG_TRACE, uNSAFE_COERCE :: Module

gHC_PRIM :: Module
gHC_PRIM        = FastString -> Module
mkPrimModule (String -> FastString
fsLit String
"GHC.Prim")   -- Primitive types and values
gHC_PRIM_PANIC :: Module
gHC_PRIM_PANIC  = FastString -> Module
mkPrimModule (String -> FastString
fsLit String
"GHC.Prim.Panic")
gHC_TYPES :: Module
gHC_TYPES       = FastString -> Module
mkPrimModule (String -> FastString
fsLit String
"GHC.Types")
gHC_MAGIC :: Module
gHC_MAGIC       = FastString -> Module
mkPrimModule (String -> FastString
fsLit String
"GHC.Magic")
gHC_MAGIC_DICT :: Module
gHC_MAGIC_DICT  = FastString -> Module
mkPrimModule (String -> FastString
fsLit String
"GHC.Magic.Dict")
gHC_CSTRING :: Module
gHC_CSTRING     = FastString -> Module
mkPrimModule (String -> FastString
fsLit String
"GHC.CString")
gHC_CLASSES :: Module
gHC_CLASSES     = FastString -> Module
mkPrimModule (String -> FastString
fsLit String
"GHC.Classes")
gHC_PRIMOPWRAPPERS :: Module
gHC_PRIMOPWRAPPERS = FastString -> Module
mkPrimModule (String -> FastString
fsLit String
"GHC.PrimopWrappers")

gHC_BASE :: Module
gHC_BASE        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Base")
gHC_ENUM :: Module
gHC_ENUM        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Enum")
gHC_GHCI :: Module
gHC_GHCI        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.GHCi")
gHC_GHCI_HELPERS :: Module
gHC_GHCI_HELPERS= FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.GHCi.Helpers")
gHC_SHOW :: Module
gHC_SHOW        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Show")
gHC_READ :: Module
gHC_READ        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Read")
gHC_NUM :: Module
gHC_NUM         = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Num")
gHC_MAYBE :: Module
gHC_MAYBE       = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Maybe")
gHC_NUM_INTEGER :: Module
gHC_NUM_INTEGER = FastString -> Module
mkBignumModule (String -> FastString
fsLit String
"GHC.Num.Integer")
gHC_NUM_NATURAL :: Module
gHC_NUM_NATURAL = FastString -> Module
mkBignumModule (String -> FastString
fsLit String
"GHC.Num.Natural")
gHC_NUM_BIGNAT :: Module
gHC_NUM_BIGNAT  = FastString -> Module
mkBignumModule (String -> FastString
fsLit String
"GHC.Num.BigNat")
gHC_LIST :: Module
gHC_LIST        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.List")
gHC_TUPLE :: Module
gHC_TUPLE       = FastString -> Module
mkPrimModule (String -> FastString
fsLit String
"GHC.Tuple")
gHC_TUPLE_PRIM :: Module
gHC_TUPLE_PRIM  = FastString -> Module
mkPrimModule (String -> FastString
fsLit String
"GHC.Tuple.Prim")
dATA_EITHER :: Module
dATA_EITHER     = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Either")
dATA_VOID :: Module
dATA_VOID       = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Void")
dATA_LIST :: Module
dATA_LIST       = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.List")
dATA_STRING :: Module
dATA_STRING     = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.String")
dATA_FOLDABLE :: Module
dATA_FOLDABLE   = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Foldable")
dATA_TRAVERSABLE :: Module
dATA_TRAVERSABLE= FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Traversable")
gHC_CONC :: Module
gHC_CONC        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Conc")
gHC_IO :: Module
gHC_IO          = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.IO")
gHC_IO_Exception :: Module
gHC_IO_Exception = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.IO.Exception")
gHC_ST :: Module
gHC_ST          = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.ST")
gHC_IX :: Module
gHC_IX          = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Ix")
gHC_STABLE :: Module
gHC_STABLE      = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Stable")
gHC_PTR :: Module
gHC_PTR         = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Ptr")
gHC_ERR :: Module
gHC_ERR         = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Err")
gHC_REAL :: Module
gHC_REAL        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Real")
gHC_FLOAT :: Module
gHC_FLOAT       = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Float")
gHC_TOP_HANDLER :: Module
gHC_TOP_HANDLER = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.TopHandler")
sYSTEM_IO :: Module
sYSTEM_IO       = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"System.IO")
dYNAMIC :: Module
dYNAMIC         = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Dynamic")
tYPEABLE :: Module
tYPEABLE        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Typeable")
tYPEABLE_INTERNAL :: Module
tYPEABLE_INTERNAL = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Typeable.Internal")
gENERICS :: Module
gENERICS        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Data")
rEAD_PREC :: Module
rEAD_PREC       = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Text.ParserCombinators.ReadPrec")
lEX :: Module
lEX             = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Text.Read.Lex")
gHC_INT :: Module
gHC_INT         = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Int")
gHC_WORD :: Module
gHC_WORD        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Word")
mONAD :: Module
mONAD           = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Control.Monad")
mONAD_FIX :: Module
mONAD_FIX       = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Control.Monad.Fix")
mONAD_ZIP :: Module
mONAD_ZIP       = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Control.Monad.Zip")
mONAD_FAIL :: Module
mONAD_FAIL      = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Control.Monad.Fail")
aRROW :: Module
aRROW           = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Control.Arrow")
gHC_DESUGAR :: Module
gHC_DESUGAR = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Desugar")
rANDOM :: Module
rANDOM          = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"System.Random")
gHC_EXTS :: Module
gHC_EXTS        = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Exts")
gHC_IS_LIST :: Module
gHC_IS_LIST     = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.IsList")
cONTROL_EXCEPTION_BASE :: Module
cONTROL_EXCEPTION_BASE = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Control.Exception.Base")
gHC_GENERICS :: Module
gHC_GENERICS    = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Generics")
gHC_TYPEERROR :: Module
gHC_TYPEERROR   = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.TypeError")
gHC_TYPELITS :: Module
gHC_TYPELITS    = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.TypeLits")
gHC_TYPELITS_INTERNAL :: Module
gHC_TYPELITS_INTERNAL = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.TypeLits.Internal")
gHC_TYPENATS :: Module
gHC_TYPENATS    = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.TypeNats")
gHC_TYPENATS_INTERNAL :: Module
gHC_TYPENATS_INTERNAL = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.TypeNats.Internal")
dATA_COERCE :: Module
dATA_COERCE     = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Coerce")
dEBUG_TRACE :: Module
dEBUG_TRACE     = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Debug.Trace")
uNSAFE_COERCE :: Module
uNSAFE_COERCE   = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Unsafe.Coerce")

gHC_SRCLOC :: Module
gHC_SRCLOC :: Module
gHC_SRCLOC = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.SrcLoc")

gHC_STACK, gHC_STACK_TYPES :: Module
gHC_STACK :: Module
gHC_STACK = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Stack")
gHC_STACK_TYPES :: Module
gHC_STACK_TYPES = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Stack.Types")

gHC_STATICPTR :: Module
gHC_STATICPTR :: Module
gHC_STATICPTR = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.StaticPtr")

gHC_STATICPTR_INTERNAL :: Module
gHC_STATICPTR_INTERNAL :: Module
gHC_STATICPTR_INTERNAL = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.StaticPtr.Internal")

gHC_FINGERPRINT_TYPE :: Module
gHC_FINGERPRINT_TYPE :: Module
gHC_FINGERPRINT_TYPE = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Fingerprint.Type")

gHC_OVER_LABELS :: Module
gHC_OVER_LABELS :: Module
gHC_OVER_LABELS = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.OverloadedLabels")

gHC_RECORDS :: Module
gHC_RECORDS :: Module
gHC_RECORDS = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.Records")

rOOT_MAIN :: Module
rOOT_MAIN :: Module
rOOT_MAIN       = FastString -> Module
mkMainModule (String -> FastString
fsLit String
":Main") -- Root module for initialisation

mkInteractiveModule :: Int -> Module
-- (mkInteractiveMoudule 9) makes module 'interactive:Ghci9'
mkInteractiveModule :: Int -> Module
mkInteractiveModule Int
n = forall u. u -> ModuleName -> GenModule u
mkModule Unit
interactiveUnit (String -> ModuleName
mkModuleName (String
"Ghci" forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> String
show Int
n))

pRELUDE_NAME, mAIN_NAME :: ModuleName
pRELUDE_NAME :: ModuleName
pRELUDE_NAME   = FastString -> ModuleName
mkModuleNameFS (String -> FastString
fsLit String
"Prelude")
mAIN_NAME :: ModuleName
mAIN_NAME      = FastString -> ModuleName
mkModuleNameFS (String -> FastString
fsLit String
"Main")

mkPrimModule :: FastString -> Module
mkPrimModule :: FastString -> Module
mkPrimModule FastString
m = forall u. u -> ModuleName -> GenModule u
mkModule Unit
primUnit (FastString -> ModuleName
mkModuleNameFS FastString
m)

mkBignumModule :: FastString -> Module
mkBignumModule :: FastString -> Module
mkBignumModule FastString
m = forall u. u -> ModuleName -> GenModule u
mkModule Unit
bignumUnit (FastString -> ModuleName
mkModuleNameFS FastString
m)

mkBaseModule :: FastString -> Module
mkBaseModule :: FastString -> Module
mkBaseModule FastString
m = ModuleName -> Module
mkBaseModule_ (FastString -> ModuleName
mkModuleNameFS FastString
m)

mkBaseModule_ :: ModuleName -> Module
mkBaseModule_ :: ModuleName -> Module
mkBaseModule_ ModuleName
m = forall u. u -> ModuleName -> GenModule u
mkModule Unit
baseUnit ModuleName
m

mkThisGhcModule :: FastString -> Module
mkThisGhcModule :: FastString -> Module
mkThisGhcModule FastString
m = ModuleName -> Module
mkThisGhcModule_ (FastString -> ModuleName
mkModuleNameFS FastString
m)

mkThisGhcModule_ :: ModuleName -> Module
mkThisGhcModule_ :: ModuleName -> Module
mkThisGhcModule_ ModuleName
m = forall u. u -> ModuleName -> GenModule u
mkModule Unit
thisGhcUnit ModuleName
m

mkMainModule :: FastString -> Module
mkMainModule :: FastString -> Module
mkMainModule FastString
m = forall u. u -> ModuleName -> GenModule u
mkModule Unit
mainUnit (FastString -> ModuleName
mkModuleNameFS FastString
m)

mkMainModule_ :: ModuleName -> Module
mkMainModule_ :: ModuleName -> Module
mkMainModule_ ModuleName
m = forall u. u -> ModuleName -> GenModule u
mkModule Unit
mainUnit ModuleName
m

{-
************************************************************************
*                                                                      *
                        RdrNames
*                                                                      *
************************************************************************
-}

main_RDR_Unqual    :: RdrName
main_RDR_Unqual :: RdrName
main_RDR_Unqual = NameSpace -> FastString -> RdrName
mkUnqual NameSpace
varName (String -> FastString
fsLit String
"main")
        -- We definitely don't want an Orig RdrName, because
        -- main might, in principle, be imported into module Main

eq_RDR, ge_RDR, le_RDR, lt_RDR, gt_RDR, compare_RDR,
    ltTag_RDR, eqTag_RDR, gtTag_RDR :: RdrName
eq_RDR :: RdrName
eq_RDR                  = Name -> RdrName
nameRdrName Name
eqName
ge_RDR :: RdrName
ge_RDR                  = Name -> RdrName
nameRdrName Name
geName
le_RDR :: RdrName
le_RDR                  = Module -> FastString -> RdrName
varQual_RDR  Module
gHC_CLASSES (String -> FastString
fsLit String
"<=")
lt_RDR :: RdrName
lt_RDR                  = Module -> FastString -> RdrName
varQual_RDR  Module
gHC_CLASSES (String -> FastString
fsLit String
"<")
gt_RDR :: RdrName
gt_RDR                  = Module -> FastString -> RdrName
varQual_RDR  Module
gHC_CLASSES (String -> FastString
fsLit String
">")
compare_RDR :: RdrName
compare_RDR             = Module -> FastString -> RdrName
varQual_RDR  Module
gHC_CLASSES (String -> FastString
fsLit String
"compare")
ltTag_RDR :: RdrName
ltTag_RDR               = Name -> RdrName
nameRdrName  Name
ordLTDataConName
eqTag_RDR :: RdrName
eqTag_RDR               = Name -> RdrName
nameRdrName  Name
ordEQDataConName
gtTag_RDR :: RdrName
gtTag_RDR               = Name -> RdrName
nameRdrName  Name
ordGTDataConName

eqClass_RDR, numClass_RDR, ordClass_RDR, enumClass_RDR, monadClass_RDR
    :: RdrName
eqClass_RDR :: RdrName
eqClass_RDR             = Name -> RdrName
nameRdrName Name
eqClassName
numClass_RDR :: RdrName
numClass_RDR            = Name -> RdrName
nameRdrName Name
numClassName
ordClass_RDR :: RdrName
ordClass_RDR            = Name -> RdrName
nameRdrName Name
ordClassName
enumClass_RDR :: RdrName
enumClass_RDR           = Name -> RdrName
nameRdrName Name
enumClassName
monadClass_RDR :: RdrName
monadClass_RDR          = Name -> RdrName
nameRdrName Name
monadClassName

map_RDR, append_RDR :: RdrName
map_RDR :: RdrName
map_RDR                 = Name -> RdrName
nameRdrName Name
mapName
append_RDR :: RdrName
append_RDR              = Name -> RdrName
nameRdrName Name
appendName

foldr_RDR, build_RDR, returnM_RDR, bindM_RDR, failM_RDR
    :: RdrName
foldr_RDR :: RdrName
foldr_RDR               = Name -> RdrName
nameRdrName Name
foldrName
build_RDR :: RdrName
build_RDR               = Name -> RdrName
nameRdrName Name
buildName
returnM_RDR :: RdrName
returnM_RDR             = Name -> RdrName
nameRdrName Name
returnMName
bindM_RDR :: RdrName
bindM_RDR               = Name -> RdrName
nameRdrName Name
bindMName
failM_RDR :: RdrName
failM_RDR               = Name -> RdrName
nameRdrName Name
failMName

left_RDR, right_RDR :: RdrName
left_RDR :: RdrName
left_RDR                = Name -> RdrName
nameRdrName Name
leftDataConName
right_RDR :: RdrName
right_RDR               = Name -> RdrName
nameRdrName Name
rightDataConName

fromEnum_RDR, toEnum_RDR :: RdrName
fromEnum_RDR :: RdrName
fromEnum_RDR            = Module -> FastString -> RdrName
varQual_RDR Module
gHC_ENUM (String -> FastString
fsLit String
"fromEnum")
toEnum_RDR :: RdrName
toEnum_RDR              = Module -> FastString -> RdrName
varQual_RDR Module
gHC_ENUM (String -> FastString
fsLit String
"toEnum")

enumFrom_RDR, enumFromTo_RDR, enumFromThen_RDR, enumFromThenTo_RDR :: RdrName
enumFrom_RDR :: RdrName
enumFrom_RDR            = Name -> RdrName
nameRdrName Name
enumFromName
enumFromTo_RDR :: RdrName
enumFromTo_RDR          = Name -> RdrName
nameRdrName Name
enumFromToName
enumFromThen_RDR :: RdrName
enumFromThen_RDR        = Name -> RdrName
nameRdrName Name
enumFromThenName
enumFromThenTo_RDR :: RdrName
enumFromThenTo_RDR      = Name -> RdrName
nameRdrName Name
enumFromThenToName

ratioDataCon_RDR, integerAdd_RDR, integerMul_RDR :: RdrName
ratioDataCon_RDR :: RdrName
ratioDataCon_RDR        = Name -> RdrName
nameRdrName Name
ratioDataConName
integerAdd_RDR :: RdrName
integerAdd_RDR          = Name -> RdrName
nameRdrName Name
integerAddName
integerMul_RDR :: RdrName
integerMul_RDR          = Name -> RdrName
nameRdrName Name
integerMulName

ioDataCon_RDR :: RdrName
ioDataCon_RDR :: RdrName
ioDataCon_RDR           = Name -> RdrName
nameRdrName Name
ioDataConName

newStablePtr_RDR :: RdrName
newStablePtr_RDR :: RdrName
newStablePtr_RDR        = Name -> RdrName
nameRdrName Name
newStablePtrName

bindIO_RDR, returnIO_RDR :: RdrName
bindIO_RDR :: RdrName
bindIO_RDR              = Name -> RdrName
nameRdrName Name
bindIOName
returnIO_RDR :: RdrName
returnIO_RDR            = Name -> RdrName
nameRdrName Name
returnIOName

fromInteger_RDR, fromRational_RDR, minus_RDR, times_RDR, plus_RDR :: RdrName
fromInteger_RDR :: RdrName
fromInteger_RDR         = Name -> RdrName
nameRdrName Name
fromIntegerName
fromRational_RDR :: RdrName
fromRational_RDR        = Name -> RdrName
nameRdrName Name
fromRationalName
minus_RDR :: RdrName
minus_RDR               = Name -> RdrName
nameRdrName Name
minusName
times_RDR :: RdrName
times_RDR               = Module -> FastString -> RdrName
varQual_RDR  Module
gHC_NUM (String -> FastString
fsLit String
"*")
plus_RDR :: RdrName
plus_RDR                = Module -> FastString -> RdrName
varQual_RDR Module
gHC_NUM (String -> FastString
fsLit String
"+")

toInteger_RDR, toRational_RDR, fromIntegral_RDR :: RdrName
toInteger_RDR :: RdrName
toInteger_RDR           = Name -> RdrName
nameRdrName Name
toIntegerName
toRational_RDR :: RdrName
toRational_RDR          = Name -> RdrName
nameRdrName Name
toRationalName
fromIntegral_RDR :: RdrName
fromIntegral_RDR        = Name -> RdrName
nameRdrName Name
fromIntegralName

fromString_RDR :: RdrName
fromString_RDR :: RdrName
fromString_RDR          = Name -> RdrName
nameRdrName Name
fromStringName

fromList_RDR, fromListN_RDR, toList_RDR :: RdrName
fromList_RDR :: RdrName
fromList_RDR = Name -> RdrName
nameRdrName Name
fromListName
fromListN_RDR :: RdrName
fromListN_RDR = Name -> RdrName
nameRdrName Name
fromListNName
toList_RDR :: RdrName
toList_RDR = Name -> RdrName
nameRdrName Name
toListName

compose_RDR :: RdrName
compose_RDR :: RdrName
compose_RDR             = Module -> FastString -> RdrName
varQual_RDR Module
gHC_BASE (String -> FastString
fsLit String
".")

not_RDR, dataToTag_RDR, succ_RDR, pred_RDR, minBound_RDR, maxBound_RDR,
    and_RDR, range_RDR, inRange_RDR, index_RDR,
    unsafeIndex_RDR, unsafeRangeSize_RDR :: RdrName
and_RDR :: RdrName
and_RDR                 = Module -> FastString -> RdrName
varQual_RDR Module
gHC_CLASSES (String -> FastString
fsLit String
"&&")
not_RDR :: RdrName
not_RDR                 = Module -> FastString -> RdrName
varQual_RDR Module
gHC_CLASSES (String -> FastString
fsLit String
"not")
dataToTag_RDR :: RdrName
dataToTag_RDR           = Module -> FastString -> RdrName
varQual_RDR Module
gHC_PRIM (String -> FastString
fsLit String
"dataToTag#")
succ_RDR :: RdrName
succ_RDR                = Module -> FastString -> RdrName
varQual_RDR Module
gHC_ENUM (String -> FastString
fsLit String
"succ")
pred_RDR :: RdrName
pred_RDR                = Module -> FastString -> RdrName
varQual_RDR Module
gHC_ENUM (String -> FastString
fsLit String
"pred")
minBound_RDR :: RdrName
minBound_RDR            = Module -> FastString -> RdrName
varQual_RDR Module
gHC_ENUM (String -> FastString
fsLit String
"minBound")
maxBound_RDR :: RdrName
maxBound_RDR            = Module -> FastString -> RdrName
varQual_RDR Module
gHC_ENUM (String -> FastString
fsLit String
"maxBound")
range_RDR :: RdrName
range_RDR               = Module -> FastString -> RdrName
varQual_RDR Module
gHC_IX (String -> FastString
fsLit String
"range")
inRange_RDR :: RdrName
inRange_RDR             = Module -> FastString -> RdrName
varQual_RDR Module
gHC_IX (String -> FastString
fsLit String
"inRange")
index_RDR :: RdrName
index_RDR               = Module -> FastString -> RdrName
varQual_RDR Module
gHC_IX (String -> FastString
fsLit String
"index")
unsafeIndex_RDR :: RdrName
unsafeIndex_RDR         = Module -> FastString -> RdrName
varQual_RDR Module
gHC_IX (String -> FastString
fsLit String
"unsafeIndex")
unsafeRangeSize_RDR :: RdrName
unsafeRangeSize_RDR     = Module -> FastString -> RdrName
varQual_RDR Module
gHC_IX (String -> FastString
fsLit String
"unsafeRangeSize")

readList_RDR, readListDefault_RDR, readListPrec_RDR, readListPrecDefault_RDR,
    readPrec_RDR, parens_RDR, choose_RDR, lexP_RDR, expectP_RDR :: RdrName
readList_RDR :: RdrName
readList_RDR            = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"readList")
readListDefault_RDR :: RdrName
readListDefault_RDR     = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"readListDefault")
readListPrec_RDR :: RdrName
readListPrec_RDR        = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"readListPrec")
readListPrecDefault_RDR :: RdrName
readListPrecDefault_RDR = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"readListPrecDefault")
readPrec_RDR :: RdrName
readPrec_RDR            = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"readPrec")
parens_RDR :: RdrName
parens_RDR              = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"parens")
choose_RDR :: RdrName
choose_RDR              = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"choose")
lexP_RDR :: RdrName
lexP_RDR                = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"lexP")
expectP_RDR :: RdrName
expectP_RDR             = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"expectP")

readField_RDR, readFieldHash_RDR, readSymField_RDR :: RdrName
readField_RDR :: RdrName
readField_RDR           = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"readField")
readFieldHash_RDR :: RdrName
readFieldHash_RDR       = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"readFieldHash")
readSymField_RDR :: RdrName
readSymField_RDR        = Module -> FastString -> RdrName
varQual_RDR Module
gHC_READ (String -> FastString
fsLit String
"readSymField")

punc_RDR, ident_RDR, symbol_RDR :: RdrName
punc_RDR :: RdrName
punc_RDR                = Module -> FastString -> RdrName
dataQual_RDR Module
lEX (String -> FastString
fsLit String
"Punc")
ident_RDR :: RdrName
ident_RDR               = Module -> FastString -> RdrName
dataQual_RDR Module
lEX (String -> FastString
fsLit String
"Ident")
symbol_RDR :: RdrName
symbol_RDR              = Module -> FastString -> RdrName
dataQual_RDR Module
lEX (String -> FastString
fsLit String
"Symbol")

step_RDR, alt_RDR, reset_RDR, prec_RDR, pfail_RDR :: RdrName
step_RDR :: RdrName
step_RDR                = Module -> FastString -> RdrName
varQual_RDR  Module
rEAD_PREC (String -> FastString
fsLit String
"step")
alt_RDR :: RdrName
alt_RDR                 = Module -> FastString -> RdrName
varQual_RDR  Module
rEAD_PREC (String -> FastString
fsLit String
"+++")
reset_RDR :: RdrName
reset_RDR               = Module -> FastString -> RdrName
varQual_RDR  Module
rEAD_PREC (String -> FastString
fsLit String
"reset")
prec_RDR :: RdrName
prec_RDR                = Module -> FastString -> RdrName
varQual_RDR  Module
rEAD_PREC (String -> FastString
fsLit String
"prec")
pfail_RDR :: RdrName
pfail_RDR               = Module -> FastString -> RdrName
varQual_RDR  Module
rEAD_PREC (String -> FastString
fsLit String
"pfail")

showsPrec_RDR, shows_RDR, showString_RDR,
    showSpace_RDR, showCommaSpace_RDR, showParen_RDR :: RdrName
showsPrec_RDR :: RdrName
showsPrec_RDR           = Module -> FastString -> RdrName
varQual_RDR Module
gHC_SHOW (String -> FastString
fsLit String
"showsPrec")
shows_RDR :: RdrName
shows_RDR               = Module -> FastString -> RdrName
varQual_RDR Module
gHC_SHOW (String -> FastString
fsLit String
"shows")
showString_RDR :: RdrName
showString_RDR          = Module -> FastString -> RdrName
varQual_RDR Module
gHC_SHOW (String -> FastString
fsLit String
"showString")
showSpace_RDR :: RdrName
showSpace_RDR           = Module -> FastString -> RdrName
varQual_RDR Module
gHC_SHOW (String -> FastString
fsLit String
"showSpace")
showCommaSpace_RDR :: RdrName
showCommaSpace_RDR      = Module -> FastString -> RdrName
varQual_RDR Module
gHC_SHOW (String -> FastString
fsLit String
"showCommaSpace")
showParen_RDR :: RdrName
showParen_RDR           = Module -> FastString -> RdrName
varQual_RDR Module
gHC_SHOW (String -> FastString
fsLit String
"showParen")

error_RDR :: RdrName
error_RDR :: RdrName
error_RDR = Module -> FastString -> RdrName
varQual_RDR Module
gHC_ERR (String -> FastString
fsLit String
"error")

-- Generics (constructors and functions)
u1DataCon_RDR, par1DataCon_RDR, rec1DataCon_RDR,
  k1DataCon_RDR, m1DataCon_RDR, l1DataCon_RDR, r1DataCon_RDR,
  prodDataCon_RDR, comp1DataCon_RDR,
  unPar1_RDR, unRec1_RDR, unK1_RDR, unComp1_RDR,
  from_RDR, from1_RDR, to_RDR, to1_RDR,
  datatypeName_RDR, moduleName_RDR, packageName_RDR, isNewtypeName_RDR,
  conName_RDR, conFixity_RDR, conIsRecord_RDR, selName_RDR,
  prefixDataCon_RDR, infixDataCon_RDR, leftAssocDataCon_RDR,
  rightAssocDataCon_RDR, notAssocDataCon_RDR,
  uAddrDataCon_RDR, uCharDataCon_RDR, uDoubleDataCon_RDR,
  uFloatDataCon_RDR, uIntDataCon_RDR, uWordDataCon_RDR,
  uAddrHash_RDR, uCharHash_RDR, uDoubleHash_RDR,
  uFloatHash_RDR, uIntHash_RDR, uWordHash_RDR :: RdrName

u1DataCon_RDR :: RdrName
u1DataCon_RDR    = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"U1")
par1DataCon_RDR :: RdrName
par1DataCon_RDR  = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"Par1")
rec1DataCon_RDR :: RdrName
rec1DataCon_RDR  = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"Rec1")
k1DataCon_RDR :: RdrName
k1DataCon_RDR    = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"K1")
m1DataCon_RDR :: RdrName
m1DataCon_RDR    = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"M1")

l1DataCon_RDR :: RdrName
l1DataCon_RDR     = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"L1")
r1DataCon_RDR :: RdrName
r1DataCon_RDR     = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"R1")

prodDataCon_RDR :: RdrName
prodDataCon_RDR   = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
":*:")
comp1DataCon_RDR :: RdrName
comp1DataCon_RDR  = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"Comp1")

unPar1_RDR :: RdrName
unPar1_RDR  = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"unPar1")
unRec1_RDR :: RdrName
unRec1_RDR  = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"unRec1")
unK1_RDR :: RdrName
unK1_RDR    = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"unK1")
unComp1_RDR :: RdrName
unComp1_RDR = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"unComp1")

from_RDR :: RdrName
from_RDR  = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"from")
from1_RDR :: RdrName
from1_RDR = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"from1")
to_RDR :: RdrName
to_RDR    = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"to")
to1_RDR :: RdrName
to1_RDR   = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"to1")

datatypeName_RDR :: RdrName
datatypeName_RDR  = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"datatypeName")
moduleName_RDR :: RdrName
moduleName_RDR    = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"moduleName")
packageName_RDR :: RdrName
packageName_RDR   = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"packageName")
isNewtypeName_RDR :: RdrName
isNewtypeName_RDR = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"isNewtype")
selName_RDR :: RdrName
selName_RDR       = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"selName")
conName_RDR :: RdrName
conName_RDR       = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"conName")
conFixity_RDR :: RdrName
conFixity_RDR     = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"conFixity")
conIsRecord_RDR :: RdrName
conIsRecord_RDR   = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"conIsRecord")

prefixDataCon_RDR :: RdrName
prefixDataCon_RDR     = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"Prefix")
infixDataCon_RDR :: RdrName
infixDataCon_RDR      = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"Infix")
leftAssocDataCon_RDR :: RdrName
leftAssocDataCon_RDR  = Name -> RdrName
nameRdrName Name
leftAssociativeDataConName
rightAssocDataCon_RDR :: RdrName
rightAssocDataCon_RDR = Name -> RdrName
nameRdrName Name
rightAssociativeDataConName
notAssocDataCon_RDR :: RdrName
notAssocDataCon_RDR   = Name -> RdrName
nameRdrName Name
notAssociativeDataConName

uAddrDataCon_RDR :: RdrName
uAddrDataCon_RDR   = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"UAddr")
uCharDataCon_RDR :: RdrName
uCharDataCon_RDR   = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"UChar")
uDoubleDataCon_RDR :: RdrName
uDoubleDataCon_RDR = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"UDouble")
uFloatDataCon_RDR :: RdrName
uFloatDataCon_RDR  = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"UFloat")
uIntDataCon_RDR :: RdrName
uIntDataCon_RDR    = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"UInt")
uWordDataCon_RDR :: RdrName
uWordDataCon_RDR   = Module -> FastString -> RdrName
dataQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"UWord")

uAddrHash_RDR :: RdrName
uAddrHash_RDR   = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"uAddr#")
uCharHash_RDR :: RdrName
uCharHash_RDR   = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"uChar#")
uDoubleHash_RDR :: RdrName
uDoubleHash_RDR = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"uDouble#")
uFloatHash_RDR :: RdrName
uFloatHash_RDR  = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"uFloat#")
uIntHash_RDR :: RdrName
uIntHash_RDR    = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"uInt#")
uWordHash_RDR :: RdrName
uWordHash_RDR   = Module -> FastString -> RdrName
varQual_RDR Module
gHC_GENERICS (String -> FastString
fsLit String
"uWord#")

fmap_RDR, replace_RDR, pure_RDR, ap_RDR, liftA2_RDR, foldable_foldr_RDR,
    foldMap_RDR, null_RDR, all_RDR, traverse_RDR, mempty_RDR,
    mappend_RDR :: RdrName
fmap_RDR :: RdrName
fmap_RDR                = Name -> RdrName
nameRdrName Name
fmapName
replace_RDR :: RdrName
replace_RDR             = Module -> FastString -> RdrName
varQual_RDR Module
gHC_BASE (String -> FastString
fsLit String
"<$")
pure_RDR :: RdrName
pure_RDR                = Name -> RdrName
nameRdrName Name
pureAName
ap_RDR :: RdrName
ap_RDR                  = Name -> RdrName
nameRdrName Name
apAName
liftA2_RDR :: RdrName
liftA2_RDR              = Module -> FastString -> RdrName
varQual_RDR Module
gHC_BASE (String -> FastString
fsLit String
"liftA2")
foldable_foldr_RDR :: RdrName
foldable_foldr_RDR      = Module -> FastString -> RdrName
varQual_RDR Module
dATA_FOLDABLE       (String -> FastString
fsLit String
"foldr")
foldMap_RDR :: RdrName
foldMap_RDR             = Module -> FastString -> RdrName
varQual_RDR Module
dATA_FOLDABLE       (String -> FastString
fsLit String
"foldMap")
null_RDR :: RdrName
null_RDR                = Module -> FastString -> RdrName
varQual_RDR Module
dATA_FOLDABLE       (String -> FastString
fsLit String
"null")
all_RDR :: RdrName
all_RDR                 = Module -> FastString -> RdrName
varQual_RDR Module
dATA_FOLDABLE       (String -> FastString
fsLit String
"all")
traverse_RDR :: RdrName
traverse_RDR            = Module -> FastString -> RdrName
varQual_RDR Module
dATA_TRAVERSABLE    (String -> FastString
fsLit String
"traverse")
mempty_RDR :: RdrName
mempty_RDR              = Name -> RdrName
nameRdrName Name
memptyName
mappend_RDR :: RdrName
mappend_RDR             = Name -> RdrName
nameRdrName Name
mappendName

----------------------
varQual_RDR, tcQual_RDR, clsQual_RDR, dataQual_RDR
    :: Module -> FastString -> RdrName
varQual_RDR :: Module -> FastString -> RdrName
varQual_RDR  Module
mod FastString
str = Module -> OccName -> RdrName
mkOrig Module
mod (NameSpace -> FastString -> OccName
mkOccNameFS NameSpace
varName FastString
str)
tcQual_RDR :: Module -> FastString -> RdrName
tcQual_RDR   Module
mod FastString
str = Module -> OccName -> RdrName
mkOrig Module
mod (NameSpace -> FastString -> OccName
mkOccNameFS NameSpace
tcName FastString
str)
clsQual_RDR :: Module -> FastString -> RdrName
clsQual_RDR  Module
mod FastString
str = Module -> OccName -> RdrName
mkOrig Module
mod (NameSpace -> FastString -> OccName
mkOccNameFS NameSpace
clsName FastString
str)
dataQual_RDR :: Module -> FastString -> RdrName
dataQual_RDR Module
mod FastString
str = Module -> OccName -> RdrName
mkOrig Module
mod (NameSpace -> FastString -> OccName
mkOccNameFS NameSpace
dataName FastString
str)

{-
************************************************************************
*                                                                      *
\subsection{Known-key names}
*                                                                      *
************************************************************************

Many of these Names are not really "built in", but some parts of the
compiler (notably the deriving mechanism) need to mention their names,
and it's convenient to write them all down in one place.
-}

wildCardName :: Name
wildCardName :: Name
wildCardName = Unique -> FastString -> Name
mkSystemVarName Unique
wildCardKey (String -> FastString
fsLit String
"wild")

runMainIOName, runRWName :: Name
runMainIOName :: Name
runMainIOName = Module -> FastString -> Unique -> Name
varQual Module
gHC_TOP_HANDLER (String -> FastString
fsLit String
"runMainIO") Unique
runMainKey
runRWName :: Name
runRWName     = Module -> FastString -> Unique -> Name
varQual Module
gHC_MAGIC       (String -> FastString
fsLit String
"runRW#")    Unique
runRWKey

orderingTyConName, ordLTDataConName, ordEQDataConName, ordGTDataConName :: Name
orderingTyConName :: Name
orderingTyConName = Module -> FastString -> Unique -> Name
tcQual  Module
gHC_TYPES (String -> FastString
fsLit String
"Ordering") Unique
orderingTyConKey
ordLTDataConName :: Name
ordLTDataConName     = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES (String -> FastString
fsLit String
"LT") Unique
ordLTDataConKey
ordEQDataConName :: Name
ordEQDataConName     = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES (String -> FastString
fsLit String
"EQ") Unique
ordEQDataConKey
ordGTDataConName :: Name
ordGTDataConName     = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES (String -> FastString
fsLit String
"GT") Unique
ordGTDataConKey

specTyConName :: Name
specTyConName :: Name
specTyConName     = Module -> FastString -> Unique -> Name
tcQual Module
gHC_TYPES (String -> FastString
fsLit String
"SPEC") Unique
specTyConKey

eitherTyConName, leftDataConName, rightDataConName :: Name
eitherTyConName :: Name
eitherTyConName   = Module -> FastString -> Unique -> Name
tcQual  Module
dATA_EITHER (String -> FastString
fsLit String
"Either") Unique
eitherTyConKey
leftDataConName :: Name
leftDataConName   = Module -> FastString -> Unique -> Name
dcQual Module
dATA_EITHER (String -> FastString
fsLit String
"Left")   Unique
leftDataConKey
rightDataConName :: Name
rightDataConName  = Module -> FastString -> Unique -> Name
dcQual Module
dATA_EITHER (String -> FastString
fsLit String
"Right")  Unique
rightDataConKey

voidTyConName :: Name
voidTyConName :: Name
voidTyConName = Module -> FastString -> Unique -> Name
tcQual Module
dATA_VOID (String -> FastString
fsLit String
"Void") Unique
voidTyConKey

-- Generics (types)
v1TyConName, u1TyConName, par1TyConName, rec1TyConName,
  k1TyConName, m1TyConName, sumTyConName, prodTyConName,
  compTyConName, rTyConName, dTyConName,
  cTyConName, sTyConName, rec0TyConName,
  d1TyConName, c1TyConName, s1TyConName,
  repTyConName, rep1TyConName, uRecTyConName,
  uAddrTyConName, uCharTyConName, uDoubleTyConName,
  uFloatTyConName, uIntTyConName, uWordTyConName,
  prefixIDataConName, infixIDataConName, leftAssociativeDataConName,
  rightAssociativeDataConName, notAssociativeDataConName,
  sourceUnpackDataConName, sourceNoUnpackDataConName,
  noSourceUnpackednessDataConName, sourceLazyDataConName,
  sourceStrictDataConName, noSourceStrictnessDataConName,
  decidedLazyDataConName, decidedStrictDataConName, decidedUnpackDataConName,
  metaDataDataConName, metaConsDataConName, metaSelDataConName :: Name

v1TyConName :: Name
v1TyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"V1") Unique
v1TyConKey
u1TyConName :: Name
u1TyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"U1") Unique
u1TyConKey
par1TyConName :: Name
par1TyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"Par1") Unique
par1TyConKey
rec1TyConName :: Name
rec1TyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"Rec1") Unique
rec1TyConKey
k1TyConName :: Name
k1TyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"K1") Unique
k1TyConKey
m1TyConName :: Name
m1TyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"M1") Unique
m1TyConKey

sumTyConName :: Name
sumTyConName    = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
":+:") Unique
sumTyConKey
prodTyConName :: Name
prodTyConName   = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
":*:") Unique
prodTyConKey
compTyConName :: Name
compTyConName   = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
":.:") Unique
compTyConKey

rTyConName :: Name
rTyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"R") Unique
rTyConKey
dTyConName :: Name
dTyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"D") Unique
dTyConKey
cTyConName :: Name
cTyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"C") Unique
cTyConKey
sTyConName :: Name
sTyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"S") Unique
sTyConKey

rec0TyConName :: Name
rec0TyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"Rec0") Unique
rec0TyConKey
d1TyConName :: Name
d1TyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"D1") Unique
d1TyConKey
c1TyConName :: Name
c1TyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"C1") Unique
c1TyConKey
s1TyConName :: Name
s1TyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"S1") Unique
s1TyConKey

repTyConName :: Name
repTyConName  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"Rep")  Unique
repTyConKey
rep1TyConName :: Name
rep1TyConName = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"Rep1") Unique
rep1TyConKey

uRecTyConName :: Name
uRecTyConName      = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"URec") Unique
uRecTyConKey
uAddrTyConName :: Name
uAddrTyConName     = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"UAddr") Unique
uAddrTyConKey
uCharTyConName :: Name
uCharTyConName     = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"UChar") Unique
uCharTyConKey
uDoubleTyConName :: Name
uDoubleTyConName   = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"UDouble") Unique
uDoubleTyConKey
uFloatTyConName :: Name
uFloatTyConName    = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"UFloat") Unique
uFloatTyConKey
uIntTyConName :: Name
uIntTyConName      = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"UInt") Unique
uIntTyConKey
uWordTyConName :: Name
uWordTyConName     = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"UWord") Unique
uWordTyConKey

prefixIDataConName :: Name
prefixIDataConName = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"PrefixI")  Unique
prefixIDataConKey
infixIDataConName :: Name
infixIDataConName  = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"InfixI")   Unique
infixIDataConKey
leftAssociativeDataConName :: Name
leftAssociativeDataConName  = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"LeftAssociative")   Unique
leftAssociativeDataConKey
rightAssociativeDataConName :: Name
rightAssociativeDataConName = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"RightAssociative")  Unique
rightAssociativeDataConKey
notAssociativeDataConName :: Name
notAssociativeDataConName   = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"NotAssociative")    Unique
notAssociativeDataConKey

sourceUnpackDataConName :: Name
sourceUnpackDataConName         = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"SourceUnpack")         Unique
sourceUnpackDataConKey
sourceNoUnpackDataConName :: Name
sourceNoUnpackDataConName       = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"SourceNoUnpack")       Unique
sourceNoUnpackDataConKey
noSourceUnpackednessDataConName :: Name
noSourceUnpackednessDataConName = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"NoSourceUnpackedness") Unique
noSourceUnpackednessDataConKey
sourceLazyDataConName :: Name
sourceLazyDataConName           = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"SourceLazy")           Unique
sourceLazyDataConKey
sourceStrictDataConName :: Name
sourceStrictDataConName         = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"SourceStrict")         Unique
sourceStrictDataConKey
noSourceStrictnessDataConName :: Name
noSourceStrictnessDataConName   = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"NoSourceStrictness")   Unique
noSourceStrictnessDataConKey
decidedLazyDataConName :: Name
decidedLazyDataConName          = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"DecidedLazy")          Unique
decidedLazyDataConKey
decidedStrictDataConName :: Name
decidedStrictDataConName        = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"DecidedStrict")        Unique
decidedStrictDataConKey
decidedUnpackDataConName :: Name
decidedUnpackDataConName        = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"DecidedUnpack")        Unique
decidedUnpackDataConKey

metaDataDataConName :: Name
metaDataDataConName  = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"MetaData")  Unique
metaDataDataConKey
metaConsDataConName :: Name
metaConsDataConName  = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"MetaCons")  Unique
metaConsDataConKey
metaSelDataConName :: Name
metaSelDataConName   = Module -> FastString -> Unique -> Name
dcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"MetaSel")   Unique
metaSelDataConKey

-- Primitive Int
divIntName, modIntName :: Name
divIntName :: Name
divIntName = Module -> FastString -> Unique -> Name
varQual Module
gHC_CLASSES (String -> FastString
fsLit String
"divInt#") Unique
divIntIdKey
modIntName :: Name
modIntName = Module -> FastString -> Unique -> Name
varQual Module
gHC_CLASSES (String -> FastString
fsLit String
"modInt#") Unique
modIntIdKey

-- Base strings Strings
unpackCStringName, unpackCStringFoldrName,
    unpackCStringUtf8Name, unpackCStringFoldrUtf8Name,
    unpackCStringAppendName, unpackCStringAppendUtf8Name,
    eqStringName, cstringLengthName :: Name
cstringLengthName :: Name
cstringLengthName       = Module -> FastString -> Unique -> Name
varQual Module
gHC_CSTRING (String -> FastString
fsLit String
"cstringLength#") Unique
cstringLengthIdKey
eqStringName :: Name
eqStringName            = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"eqString")  Unique
eqStringIdKey

unpackCStringName :: Name
unpackCStringName       = Module -> FastString -> Unique -> Name
varQual Module
gHC_CSTRING (String -> FastString
fsLit String
"unpackCString#") Unique
unpackCStringIdKey
unpackCStringAppendName :: Name
unpackCStringAppendName = Module -> FastString -> Unique -> Name
varQual Module
gHC_CSTRING (String -> FastString
fsLit String
"unpackAppendCString#") Unique
unpackCStringAppendIdKey
unpackCStringFoldrName :: Name
unpackCStringFoldrName  = Module -> FastString -> Unique -> Name
varQual Module
gHC_CSTRING (String -> FastString
fsLit String
"unpackFoldrCString#") Unique
unpackCStringFoldrIdKey

unpackCStringUtf8Name :: Name
unpackCStringUtf8Name       = Module -> FastString -> Unique -> Name
varQual Module
gHC_CSTRING (String -> FastString
fsLit String
"unpackCStringUtf8#") Unique
unpackCStringUtf8IdKey
unpackCStringAppendUtf8Name :: Name
unpackCStringAppendUtf8Name = Module -> FastString -> Unique -> Name
varQual Module
gHC_CSTRING (String -> FastString
fsLit String
"unpackAppendCStringUtf8#") Unique
unpackCStringAppendUtf8IdKey
unpackCStringFoldrUtf8Name :: Name
unpackCStringFoldrUtf8Name  = Module -> FastString -> Unique -> Name
varQual Module
gHC_CSTRING (String -> FastString
fsLit String
"unpackFoldrCStringUtf8#") Unique
unpackCStringFoldrUtf8IdKey


-- The 'inline' function
inlineIdName :: Name
inlineIdName :: Name
inlineIdName            = Module -> FastString -> Unique -> Name
varQual Module
gHC_MAGIC (String -> FastString
fsLit String
"inline") Unique
inlineIdKey

-- Base classes (Eq, Ord, Functor)
fmapName, eqClassName, eqName, ordClassName, geName, functorClassName :: Name
eqClassName :: Name
eqClassName       = Module -> FastString -> Unique -> Name
clsQual Module
gHC_CLASSES (String -> FastString
fsLit String
"Eq")      Unique
eqClassKey
eqName :: Name
eqName            = Module -> FastString -> Unique -> Name
varQual Module
gHC_CLASSES (String -> FastString
fsLit String
"==")      Unique
eqClassOpKey
ordClassName :: Name
ordClassName      = Module -> FastString -> Unique -> Name
clsQual Module
gHC_CLASSES (String -> FastString
fsLit String
"Ord")     Unique
ordClassKey
geName :: Name
geName            = Module -> FastString -> Unique -> Name
varQual Module
gHC_CLASSES (String -> FastString
fsLit String
">=")      Unique
geClassOpKey
functorClassName :: Name
functorClassName  = Module -> FastString -> Unique -> Name
clsQual Module
gHC_BASE    (String -> FastString
fsLit String
"Functor") Unique
functorClassKey
fmapName :: Name
fmapName          = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE    (String -> FastString
fsLit String
"fmap")    Unique
fmapClassOpKey

-- Class Monad
monadClassName, thenMName, bindMName, returnMName :: Name
monadClassName :: Name
monadClassName     = Module -> FastString -> Unique -> Name
clsQual Module
gHC_BASE (String -> FastString
fsLit String
"Monad")  Unique
monadClassKey
thenMName :: Name
thenMName          = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
">>")     Unique
thenMClassOpKey
bindMName :: Name
bindMName          = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
">>=")    Unique
bindMClassOpKey
returnMName :: Name
returnMName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"return") Unique
returnMClassOpKey

-- Class MonadFail
monadFailClassName, failMName :: Name
monadFailClassName :: Name
monadFailClassName = Module -> FastString -> Unique -> Name
clsQual Module
mONAD_FAIL (String -> FastString
fsLit String
"MonadFail") Unique
monadFailClassKey
failMName :: Name
failMName          = Module -> FastString -> Unique -> Name
varQual Module
mONAD_FAIL (String -> FastString
fsLit String
"fail")      Unique
failMClassOpKey

-- Class Applicative
applicativeClassName, pureAName, apAName, thenAName :: Name
applicativeClassName :: Name
applicativeClassName = Module -> FastString -> Unique -> Name
clsQual Module
gHC_BASE (String -> FastString
fsLit String
"Applicative") Unique
applicativeClassKey
apAName :: Name
apAName              = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"<*>")         Unique
apAClassOpKey
pureAName :: Name
pureAName            = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"pure")        Unique
pureAClassOpKey
thenAName :: Name
thenAName            = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"*>")          Unique
thenAClassOpKey

-- Classes (Foldable, Traversable)
foldableClassName, traversableClassName :: Name
foldableClassName :: Name
foldableClassName     = Module -> FastString -> Unique -> Name
clsQual  Module
dATA_FOLDABLE       (String -> FastString
fsLit String
"Foldable")    Unique
foldableClassKey
traversableClassName :: Name
traversableClassName  = Module -> FastString -> Unique -> Name
clsQual  Module
dATA_TRAVERSABLE    (String -> FastString
fsLit String
"Traversable") Unique
traversableClassKey

-- Classes (Semigroup, Monoid)
semigroupClassName, sappendName :: Name
semigroupClassName :: Name
semigroupClassName = Module -> FastString -> Unique -> Name
clsQual Module
gHC_BASE       (String -> FastString
fsLit String
"Semigroup") Unique
semigroupClassKey
sappendName :: Name
sappendName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE       (String -> FastString
fsLit String
"<>")        Unique
sappendClassOpKey
monoidClassName, memptyName, mappendName, mconcatName :: Name
monoidClassName :: Name
monoidClassName    = Module -> FastString -> Unique -> Name
clsQual Module
gHC_BASE       (String -> FastString
fsLit String
"Monoid")    Unique
monoidClassKey
memptyName :: Name
memptyName         = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE       (String -> FastString
fsLit String
"mempty")    Unique
memptyClassOpKey
mappendName :: Name
mappendName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE       (String -> FastString
fsLit String
"mappend")   Unique
mappendClassOpKey
mconcatName :: Name
mconcatName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE       (String -> FastString
fsLit String
"mconcat")   Unique
mconcatClassOpKey



-- AMP additions

joinMName, alternativeClassName :: Name
joinMName :: Name
joinMName            = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"join")        Unique
joinMIdKey
alternativeClassName :: Name
alternativeClassName = Module -> FastString -> Unique -> Name
clsQual Module
mONAD (String -> FastString
fsLit String
"Alternative") Unique
alternativeClassKey

--
joinMIdKey, apAClassOpKey, pureAClassOpKey, thenAClassOpKey,
    alternativeClassKey :: Unique
joinMIdKey :: Unique
joinMIdKey          = Int -> Unique
mkPreludeMiscIdUnique Int
750
apAClassOpKey :: Unique
apAClassOpKey       = Int -> Unique
mkPreludeMiscIdUnique Int
751 -- <*>
pureAClassOpKey :: Unique
pureAClassOpKey     = Int -> Unique
mkPreludeMiscIdUnique Int
752
thenAClassOpKey :: Unique
thenAClassOpKey     = Int -> Unique
mkPreludeMiscIdUnique Int
753
alternativeClassKey :: Unique
alternativeClassKey = Int -> Unique
mkPreludeMiscIdUnique Int
754


-- Functions for GHC extensions
considerAccessibleName :: Name
considerAccessibleName :: Name
considerAccessibleName = Module -> FastString -> Unique -> Name
varQual Module
gHC_EXTS (String -> FastString
fsLit String
"considerAccessible") Unique
considerAccessibleIdKey

-- Random GHC.Base functions
fromStringName, otherwiseIdName, foldrName, buildName, augmentName,
    mapName, appendName, assertName,
    dollarName :: Name
dollarName :: Name
dollarName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"$")          Unique
dollarIdKey
otherwiseIdName :: Name
otherwiseIdName   = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"otherwise")  Unique
otherwiseIdKey
foldrName :: Name
foldrName         = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"foldr")      Unique
foldrIdKey
buildName :: Name
buildName         = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"build")      Unique
buildIdKey
augmentName :: Name
augmentName       = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"augment")    Unique
augmentIdKey
mapName :: Name
mapName           = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"map")        Unique
mapIdKey
appendName :: Name
appendName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"++")         Unique
appendIdKey
assertName :: Name
assertName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"assert")     Unique
assertIdKey
fromStringName :: Name
fromStringName = Module -> FastString -> Unique -> Name
varQual Module
dATA_STRING (String -> FastString
fsLit String
"fromString") Unique
fromStringClassOpKey

-- Module GHC.Num
numClassName, fromIntegerName, minusName, negateName :: Name
numClassName :: Name
numClassName      = Module -> FastString -> Unique -> Name
clsQual Module
gHC_NUM (String -> FastString
fsLit String
"Num")         Unique
numClassKey
fromIntegerName :: Name
fromIntegerName   = Module -> FastString -> Unique -> Name
varQual Module
gHC_NUM (String -> FastString
fsLit String
"fromInteger") Unique
fromIntegerClassOpKey
minusName :: Name
minusName         = Module -> FastString -> Unique -> Name
varQual Module
gHC_NUM (String -> FastString
fsLit String
"-")           Unique
minusClassOpKey
negateName :: Name
negateName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_NUM (String -> FastString
fsLit String
"negate")      Unique
negateClassOpKey

---------------------------------
-- ghc-bignum
---------------------------------
integerFromNaturalName
   , integerToNaturalClampName
   , integerToNaturalThrowName
   , integerToNaturalName
   , integerToWordName
   , integerToIntName
   , integerToWord64Name
   , integerToInt64Name
   , integerFromWordName
   , integerFromWord64Name
   , integerFromInt64Name
   , integerAddName
   , integerMulName
   , integerSubName
   , integerNegateName
   , integerAbsName
   , integerPopCountName
   , integerQuotName
   , integerRemName
   , integerDivName
   , integerModName
   , integerDivModName
   , integerQuotRemName
   , integerEncodeFloatName
   , integerEncodeDoubleName
   , integerGcdName
   , integerLcmName
   , integerAndName
   , integerOrName
   , integerXorName
   , integerComplementName
   , integerBitName
   , integerTestBitName
   , integerShiftLName
   , integerShiftRName
   , naturalToWordName
   , naturalPopCountName
   , naturalShiftRName
   , naturalShiftLName
   , naturalAddName
   , naturalSubName
   , naturalSubThrowName
   , naturalSubUnsafeName
   , naturalMulName
   , naturalQuotRemName
   , naturalQuotName
   , naturalRemName
   , naturalAndName
   , naturalAndNotName
   , naturalOrName
   , naturalXorName
   , naturalTestBitName
   , naturalBitName
   , naturalGcdName
   , naturalLcmName
   , naturalLog2Name
   , naturalLogBaseWordName
   , naturalLogBaseName
   , naturalPowModName
   , naturalSizeInBaseName
   , bignatFromWordListName
   , bignatEqName
   , bignatCompareName
   , bignatCompareWordName
   :: Name

bnbVarQual, bnnVarQual, bniVarQual :: String -> Unique -> Name
bnbVarQual :: String -> Unique -> Name
bnbVarQual String
str Unique
key = Module -> FastString -> Unique -> Name
varQual Module
gHC_NUM_BIGNAT  (String -> FastString
fsLit String
str) Unique
key
bnnVarQual :: String -> Unique -> Name
bnnVarQual String
str Unique
key = Module -> FastString -> Unique -> Name
varQual Module
gHC_NUM_NATURAL (String -> FastString
fsLit String
str) Unique
key
bniVarQual :: String -> Unique -> Name
bniVarQual String
str Unique
key = Module -> FastString -> Unique -> Name
varQual Module
gHC_NUM_INTEGER (String -> FastString
fsLit String
str) Unique
key

-- Types and DataCons
bignatFromWordListName :: Name
bignatFromWordListName    = String -> Unique -> Name
bnbVarQual String
"bigNatFromWordList#"       Unique
bignatFromWordListIdKey
bignatEqName :: Name
bignatEqName              = String -> Unique -> Name
bnbVarQual String
"bigNatEq#"                 Unique
bignatEqIdKey
bignatCompareName :: Name
bignatCompareName         = String -> Unique -> Name
bnbVarQual String
"bigNatCompare"             Unique
bignatCompareIdKey
bignatCompareWordName :: Name
bignatCompareWordName     = String -> Unique -> Name
bnbVarQual String
"bigNatCompareWord#"        Unique
bignatCompareWordIdKey

naturalToWordName :: Name
naturalToWordName         = String -> Unique -> Name
bnnVarQual String
"naturalToWord#"            Unique
naturalToWordIdKey
naturalPopCountName :: Name
naturalPopCountName       = String -> Unique -> Name
bnnVarQual String
"naturalPopCount#"          Unique
naturalPopCountIdKey
naturalShiftRName :: Name
naturalShiftRName         = String -> Unique -> Name
bnnVarQual String
"naturalShiftR#"            Unique
naturalShiftRIdKey
naturalShiftLName :: Name
naturalShiftLName         = String -> Unique -> Name
bnnVarQual String
"naturalShiftL#"            Unique
naturalShiftLIdKey
naturalAddName :: Name
naturalAddName            = String -> Unique -> Name
bnnVarQual String
"naturalAdd"                Unique
naturalAddIdKey
naturalSubName :: Name
naturalSubName            = String -> Unique -> Name
bnnVarQual String
"naturalSub"                Unique
naturalSubIdKey
naturalSubThrowName :: Name
naturalSubThrowName       = String -> Unique -> Name
bnnVarQual String
"naturalSubThrow"           Unique
naturalSubThrowIdKey
naturalSubUnsafeName :: Name
naturalSubUnsafeName      = String -> Unique -> Name
bnnVarQual String
"naturalSubUnsafe"          Unique
naturalSubUnsafeIdKey
naturalMulName :: Name
naturalMulName            = String -> Unique -> Name
bnnVarQual String
"naturalMul"                Unique
naturalMulIdKey
naturalQuotRemName :: Name
naturalQuotRemName        = String -> Unique -> Name
bnnVarQual String
"naturalQuotRem#"           Unique
naturalQuotRemIdKey
naturalQuotName :: Name
naturalQuotName           = String -> Unique -> Name
bnnVarQual String
"naturalQuot"               Unique
naturalQuotIdKey
naturalRemName :: Name
naturalRemName            = String -> Unique -> Name
bnnVarQual String
"naturalRem"                Unique
naturalRemIdKey
naturalAndName :: Name
naturalAndName            = String -> Unique -> Name
bnnVarQual String
"naturalAnd"                Unique
naturalAndIdKey
naturalAndNotName :: Name
naturalAndNotName         = String -> Unique -> Name
bnnVarQual String
"naturalAndNot"             Unique
naturalAndNotIdKey
naturalOrName :: Name
naturalOrName             = String -> Unique -> Name
bnnVarQual String
"naturalOr"                 Unique
naturalOrIdKey
naturalXorName :: Name
naturalXorName            = String -> Unique -> Name
bnnVarQual String
"naturalXor"                Unique
naturalXorIdKey
naturalTestBitName :: Name
naturalTestBitName        = String -> Unique -> Name
bnnVarQual String
"naturalTestBit#"           Unique
naturalTestBitIdKey
naturalBitName :: Name
naturalBitName            = String -> Unique -> Name
bnnVarQual String
"naturalBit#"               Unique
naturalBitIdKey
naturalGcdName :: Name
naturalGcdName            = String -> Unique -> Name
bnnVarQual String
"naturalGcd"                Unique
naturalGcdIdKey
naturalLcmName :: Name
naturalLcmName            = String -> Unique -> Name
bnnVarQual String
"naturalLcm"                Unique
naturalLcmIdKey
naturalLog2Name :: Name
naturalLog2Name           = String -> Unique -> Name
bnnVarQual String
"naturalLog2#"              Unique
naturalLog2IdKey
naturalLogBaseWordName :: Name
naturalLogBaseWordName    = String -> Unique -> Name
bnnVarQual String
"naturalLogBaseWord#"       Unique
naturalLogBaseWordIdKey
naturalLogBaseName :: Name
naturalLogBaseName        = String -> Unique -> Name
bnnVarQual String
"naturalLogBase#"           Unique
naturalLogBaseIdKey
naturalPowModName :: Name
naturalPowModName         = String -> Unique -> Name
bnnVarQual String
"naturalPowMod"             Unique
naturalPowModIdKey
naturalSizeInBaseName :: Name
naturalSizeInBaseName     = String -> Unique -> Name
bnnVarQual String
"naturalSizeInBase#"        Unique
naturalSizeInBaseIdKey

integerFromNaturalName :: Name
integerFromNaturalName    = String -> Unique -> Name
bniVarQual String
"integerFromNatural"        Unique
integerFromNaturalIdKey
integerToNaturalClampName :: Name
integerToNaturalClampName = String -> Unique -> Name
bniVarQual String
"integerToNaturalClamp"     Unique
integerToNaturalClampIdKey
integerToNaturalThrowName :: Name
integerToNaturalThrowName = String -> Unique -> Name
bniVarQual String
"integerToNaturalThrow"     Unique
integerToNaturalThrowIdKey
integerToNaturalName :: Name
integerToNaturalName      = String -> Unique -> Name
bniVarQual String
"integerToNatural"          Unique
integerToNaturalIdKey
integerToWordName :: Name
integerToWordName         = String -> Unique -> Name
bniVarQual String
"integerToWord#"            Unique
integerToWordIdKey
integerToIntName :: Name
integerToIntName          = String -> Unique -> Name
bniVarQual String
"integerToInt#"             Unique
integerToIntIdKey
integerToWord64Name :: Name
integerToWord64Name       = String -> Unique -> Name
bniVarQual String
"integerToWord64#"          Unique
integerToWord64IdKey
integerToInt64Name :: Name
integerToInt64Name        = String -> Unique -> Name
bniVarQual String
"integerToInt64#"           Unique
integerToInt64IdKey
integerFromWordName :: Name
integerFromWordName       = String -> Unique -> Name
bniVarQual String
"integerFromWord#"          Unique
integerFromWordIdKey
integerFromWord64Name :: Name
integerFromWord64Name     = String -> Unique -> Name
bniVarQual String
"integerFromWord64#"        Unique
integerFromWord64IdKey
integerFromInt64Name :: Name
integerFromInt64Name      = String -> Unique -> Name
bniVarQual String
"integerFromInt64#"         Unique
integerFromInt64IdKey
integerAddName :: Name
integerAddName            = String -> Unique -> Name
bniVarQual String
"integerAdd"                Unique
integerAddIdKey
integerMulName :: Name
integerMulName            = String -> Unique -> Name
bniVarQual String
"integerMul"                Unique
integerMulIdKey
integerSubName :: Name
integerSubName            = String -> Unique -> Name
bniVarQual String
"integerSub"                Unique
integerSubIdKey
integerNegateName :: Name
integerNegateName         = String -> Unique -> Name
bniVarQual String
"integerNegate"             Unique
integerNegateIdKey
integerAbsName :: Name
integerAbsName            = String -> Unique -> Name
bniVarQual String
"integerAbs"                Unique
integerAbsIdKey
integerPopCountName :: Name
integerPopCountName       = String -> Unique -> Name
bniVarQual String
"integerPopCount#"          Unique
integerPopCountIdKey
integerQuotName :: Name
integerQuotName           = String -> Unique -> Name
bniVarQual String
"integerQuot"               Unique
integerQuotIdKey
integerRemName :: Name
integerRemName            = String -> Unique -> Name
bniVarQual String
"integerRem"                Unique
integerRemIdKey
integerDivName :: Name
integerDivName            = String -> Unique -> Name
bniVarQual String
"integerDiv"                Unique
integerDivIdKey
integerModName :: Name
integerModName            = String -> Unique -> Name
bniVarQual String
"integerMod"                Unique
integerModIdKey
integerDivModName :: Name
integerDivModName         = String -> Unique -> Name
bniVarQual String
"integerDivMod#"            Unique
integerDivModIdKey
integerQuotRemName :: Name
integerQuotRemName        = String -> Unique -> Name
bniVarQual String
"integerQuotRem#"           Unique
integerQuotRemIdKey
integerEncodeFloatName :: Name
integerEncodeFloatName    = String -> Unique -> Name
bniVarQual String
"integerEncodeFloat#"       Unique
integerEncodeFloatIdKey
integerEncodeDoubleName :: Name
integerEncodeDoubleName   = String -> Unique -> Name
bniVarQual String
"integerEncodeDouble#"      Unique
integerEncodeDoubleIdKey
integerGcdName :: Name
integerGcdName            = String -> Unique -> Name
bniVarQual String
"integerGcd"                Unique
integerGcdIdKey
integerLcmName :: Name
integerLcmName            = String -> Unique -> Name
bniVarQual String
"integerLcm"                Unique
integerLcmIdKey
integerAndName :: Name
integerAndName            = String -> Unique -> Name
bniVarQual String
"integerAnd"                Unique
integerAndIdKey
integerOrName :: Name
integerOrName             = String -> Unique -> Name
bniVarQual String
"integerOr"                 Unique
integerOrIdKey
integerXorName :: Name
integerXorName            = String -> Unique -> Name
bniVarQual String
"integerXor"                Unique
integerXorIdKey
integerComplementName :: Name
integerComplementName     = String -> Unique -> Name
bniVarQual String
"integerComplement"         Unique
integerComplementIdKey
integerBitName :: Name
integerBitName            = String -> Unique -> Name
bniVarQual String
"integerBit#"               Unique
integerBitIdKey
integerTestBitName :: Name
integerTestBitName        = String -> Unique -> Name
bniVarQual String
"integerTestBit#"           Unique
integerTestBitIdKey
integerShiftLName :: Name
integerShiftLName         = String -> Unique -> Name
bniVarQual String
"integerShiftL#"            Unique
integerShiftLIdKey
integerShiftRName :: Name
integerShiftRName         = String -> Unique -> Name
bniVarQual String
"integerShiftR#"            Unique
integerShiftRIdKey



---------------------------------
-- End of ghc-bignum
---------------------------------

-- GHC.Real types and classes
rationalTyConName, ratioTyConName, ratioDataConName, realClassName,
    integralClassName, realFracClassName, fractionalClassName,
    fromRationalName, toIntegerName, toRationalName, fromIntegralName,
    realToFracName, mkRationalBase2Name, mkRationalBase10Name :: Name
rationalTyConName :: Name
rationalTyConName   = Module -> FastString -> Unique -> Name
tcQual  Module
gHC_REAL (String -> FastString
fsLit String
"Rational")     Unique
rationalTyConKey
ratioTyConName :: Name
ratioTyConName      = Module -> FastString -> Unique -> Name
tcQual  Module
gHC_REAL (String -> FastString
fsLit String
"Ratio")        Unique
ratioTyConKey
ratioDataConName :: Name
ratioDataConName    = Module -> FastString -> Unique -> Name
dcQual  Module
gHC_REAL (String -> FastString
fsLit String
":%")           Unique
ratioDataConKey
realClassName :: Name
realClassName       = Module -> FastString -> Unique -> Name
clsQual Module
gHC_REAL (String -> FastString
fsLit String
"Real")         Unique
realClassKey
integralClassName :: Name
integralClassName   = Module -> FastString -> Unique -> Name
clsQual Module
gHC_REAL (String -> FastString
fsLit String
"Integral")     Unique
integralClassKey
realFracClassName :: Name
realFracClassName   = Module -> FastString -> Unique -> Name
clsQual Module
gHC_REAL (String -> FastString
fsLit String
"RealFrac")     Unique
realFracClassKey
fractionalClassName :: Name
fractionalClassName = Module -> FastString -> Unique -> Name
clsQual Module
gHC_REAL (String -> FastString
fsLit String
"Fractional")   Unique
fractionalClassKey
fromRationalName :: Name
fromRationalName    = Module -> FastString -> Unique -> Name
varQual Module
gHC_REAL (String -> FastString
fsLit String
"fromRational") Unique
fromRationalClassOpKey
toIntegerName :: Name
toIntegerName       = Module -> FastString -> Unique -> Name
varQual Module
gHC_REAL (String -> FastString
fsLit String
"toInteger")    Unique
toIntegerClassOpKey
toRationalName :: Name
toRationalName      = Module -> FastString -> Unique -> Name
varQual Module
gHC_REAL (String -> FastString
fsLit String
"toRational")   Unique
toRationalClassOpKey
fromIntegralName :: Name
fromIntegralName    = Module -> FastString -> Unique -> Name
varQual  Module
gHC_REAL (String -> FastString
fsLit String
"fromIntegral")Unique
fromIntegralIdKey
realToFracName :: Name
realToFracName      = Module -> FastString -> Unique -> Name
varQual  Module
gHC_REAL (String -> FastString
fsLit String
"realToFrac")  Unique
realToFracIdKey
mkRationalBase2Name :: Name
mkRationalBase2Name  = Module -> FastString -> Unique -> Name
varQual  Module
gHC_REAL  (String -> FastString
fsLit String
"mkRationalBase2")  Unique
mkRationalBase2IdKey
mkRationalBase10Name :: Name
mkRationalBase10Name = Module -> FastString -> Unique -> Name
varQual  Module
gHC_REAL  (String -> FastString
fsLit String
"mkRationalBase10") Unique
mkRationalBase10IdKey
-- GHC.Float classes
floatingClassName, realFloatClassName :: Name
floatingClassName :: Name
floatingClassName  = Module -> FastString -> Unique -> Name
clsQual Module
gHC_FLOAT (String -> FastString
fsLit String
"Floating")  Unique
floatingClassKey
realFloatClassName :: Name
realFloatClassName = Module -> FastString -> Unique -> Name
clsQual Module
gHC_FLOAT (String -> FastString
fsLit String
"RealFloat") Unique
realFloatClassKey

-- other GHC.Float functions
integerToFloatName, integerToDoubleName,
  naturalToFloatName, naturalToDoubleName,
  rationalToFloatName, rationalToDoubleName :: Name
integerToFloatName :: Name
integerToFloatName   = Module -> FastString -> Unique -> Name
varQual Module
gHC_FLOAT (String -> FastString
fsLit String
"integerToFloat#") Unique
integerToFloatIdKey
integerToDoubleName :: Name
integerToDoubleName  = Module -> FastString -> Unique -> Name
varQual Module
gHC_FLOAT (String -> FastString
fsLit String
"integerToDouble#") Unique
integerToDoubleIdKey
naturalToFloatName :: Name
naturalToFloatName   = Module -> FastString -> Unique -> Name
varQual Module
gHC_FLOAT (String -> FastString
fsLit String
"naturalToFloat#") Unique
naturalToFloatIdKey
naturalToDoubleName :: Name
naturalToDoubleName  = Module -> FastString -> Unique -> Name
varQual Module
gHC_FLOAT (String -> FastString
fsLit String
"naturalToDouble#") Unique
naturalToDoubleIdKey
rationalToFloatName :: Name
rationalToFloatName  = Module -> FastString -> Unique -> Name
varQual Module
gHC_FLOAT (String -> FastString
fsLit String
"rationalToFloat") Unique
rationalToFloatIdKey
rationalToDoubleName :: Name
rationalToDoubleName = Module -> FastString -> Unique -> Name
varQual Module
gHC_FLOAT (String -> FastString
fsLit String
"rationalToDouble") Unique
rationalToDoubleIdKey

-- Class Ix
ixClassName :: Name
ixClassName :: Name
ixClassName = Module -> FastString -> Unique -> Name
clsQual Module
gHC_IX (String -> FastString
fsLit String
"Ix") Unique
ixClassKey

-- Typeable representation types
trModuleTyConName
  , trModuleDataConName
  , trNameTyConName
  , trNameSDataConName
  , trNameDDataConName
  , trTyConTyConName
  , trTyConDataConName
  :: Name
trModuleTyConName :: Name
trModuleTyConName     = Module -> FastString -> Unique -> Name
tcQual Module
gHC_TYPES          (String -> FastString
fsLit String
"Module")         Unique
trModuleTyConKey
trModuleDataConName :: Name
trModuleDataConName   = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES          (String -> FastString
fsLit String
"Module")         Unique
trModuleDataConKey
trNameTyConName :: Name
trNameTyConName       = Module -> FastString -> Unique -> Name
tcQual Module
gHC_TYPES          (String -> FastString
fsLit String
"TrName")         Unique
trNameTyConKey
trNameSDataConName :: Name
trNameSDataConName    = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES          (String -> FastString
fsLit String
"TrNameS")        Unique
trNameSDataConKey
trNameDDataConName :: Name
trNameDDataConName    = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES          (String -> FastString
fsLit String
"TrNameD")        Unique
trNameDDataConKey
trTyConTyConName :: Name
trTyConTyConName      = Module -> FastString -> Unique -> Name
tcQual Module
gHC_TYPES          (String -> FastString
fsLit String
"TyCon")          Unique
trTyConTyConKey
trTyConDataConName :: Name
trTyConDataConName    = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES          (String -> FastString
fsLit String
"TyCon")          Unique
trTyConDataConKey

kindRepTyConName
  , kindRepTyConAppDataConName
  , kindRepVarDataConName
  , kindRepAppDataConName
  , kindRepFunDataConName
  , kindRepTYPEDataConName
  , kindRepTypeLitSDataConName
  , kindRepTypeLitDDataConName
  :: Name
kindRepTyConName :: Name
kindRepTyConName      = Module -> FastString -> Unique -> Name
tcQual Module
gHC_TYPES          (String -> FastString
fsLit String
"KindRep")        Unique
kindRepTyConKey
kindRepTyConAppDataConName :: Name
kindRepTyConAppDataConName = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES     (String -> FastString
fsLit String
"KindRepTyConApp") Unique
kindRepTyConAppDataConKey
kindRepVarDataConName :: Name
kindRepVarDataConName = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES          (String -> FastString
fsLit String
"KindRepVar")     Unique
kindRepVarDataConKey
kindRepAppDataConName :: Name
kindRepAppDataConName = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES          (String -> FastString
fsLit String
"KindRepApp")     Unique
kindRepAppDataConKey
kindRepFunDataConName :: Name
kindRepFunDataConName = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES          (String -> FastString
fsLit String
"KindRepFun")     Unique
kindRepFunDataConKey
kindRepTYPEDataConName :: Name
kindRepTYPEDataConName = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES         (String -> FastString
fsLit String
"KindRepTYPE")    Unique
kindRepTYPEDataConKey
kindRepTypeLitSDataConName :: Name
kindRepTypeLitSDataConName = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES     (String -> FastString
fsLit String
"KindRepTypeLitS") Unique
kindRepTypeLitSDataConKey
kindRepTypeLitDDataConName :: Name
kindRepTypeLitDDataConName = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES     (String -> FastString
fsLit String
"KindRepTypeLitD") Unique
kindRepTypeLitDDataConKey

typeLitSortTyConName
  , typeLitSymbolDataConName
  , typeLitNatDataConName
  , typeLitCharDataConName
  :: Name
typeLitSortTyConName :: Name
typeLitSortTyConName     = Module -> FastString -> Unique -> Name
tcQual Module
gHC_TYPES       (String -> FastString
fsLit String
"TypeLitSort")    Unique
typeLitSortTyConKey
typeLitSymbolDataConName :: Name
typeLitSymbolDataConName = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES       (String -> FastString
fsLit String
"TypeLitSymbol")  Unique
typeLitSymbolDataConKey
typeLitNatDataConName :: Name
typeLitNatDataConName    = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES       (String -> FastString
fsLit String
"TypeLitNat")     Unique
typeLitNatDataConKey
typeLitCharDataConName :: Name
typeLitCharDataConName   = Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPES       (String -> FastString
fsLit String
"TypeLitChar")    Unique
typeLitCharDataConKey

-- Class Typeable, and functions for constructing `Typeable` dictionaries
typeableClassName
  , typeRepTyConName
  , someTypeRepTyConName
  , someTypeRepDataConName
  , mkTrTypeName
  , mkTrConName
  , mkTrAppName
  , mkTrFunName
  , typeRepIdName
  , typeNatTypeRepName
  , typeSymbolTypeRepName
  , typeCharTypeRepName
  , trGhcPrimModuleName
  :: Name
typeableClassName :: Name
typeableClassName     = Module -> FastString -> Unique -> Name
clsQual Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"Typeable")       Unique
typeableClassKey
typeRepTyConName :: Name
typeRepTyConName      = Module -> FastString -> Unique -> Name
tcQual  Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"TypeRep")        Unique
typeRepTyConKey
someTypeRepTyConName :: Name
someTypeRepTyConName   = Module -> FastString -> Unique -> Name
tcQual Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"SomeTypeRep")    Unique
someTypeRepTyConKey
someTypeRepDataConName :: Name
someTypeRepDataConName = Module -> FastString -> Unique -> Name
dcQual Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"SomeTypeRep")    Unique
someTypeRepDataConKey
typeRepIdName :: Name
typeRepIdName         = Module -> FastString -> Unique -> Name
varQual Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"typeRep#")       Unique
typeRepIdKey
mkTrTypeName :: Name
mkTrTypeName          = Module -> FastString -> Unique -> Name
varQual Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"mkTrType")       Unique
mkTrTypeKey
mkTrConName :: Name
mkTrConName           = Module -> FastString -> Unique -> Name
varQual Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"mkTrCon")        Unique
mkTrConKey
mkTrAppName :: Name
mkTrAppName           = Module -> FastString -> Unique -> Name
varQual Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"mkTrApp")        Unique
mkTrAppKey
mkTrFunName :: Name
mkTrFunName           = Module -> FastString -> Unique -> Name
varQual Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"mkTrFun")        Unique
mkTrFunKey
typeNatTypeRepName :: Name
typeNatTypeRepName    = Module -> FastString -> Unique -> Name
varQual Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"typeNatTypeRep") Unique
typeNatTypeRepKey
typeSymbolTypeRepName :: Name
typeSymbolTypeRepName = Module -> FastString -> Unique -> Name
varQual Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"typeSymbolTypeRep") Unique
typeSymbolTypeRepKey
typeCharTypeRepName :: Name
typeCharTypeRepName   = Module -> FastString -> Unique -> Name
varQual Module
tYPEABLE_INTERNAL (String -> FastString
fsLit String
"typeCharTypeRep") Unique
typeCharTypeRepKey
-- this is the Typeable 'Module' for GHC.Prim (which has no code, so we place in GHC.Types)
-- See Note [Grand plan for Typeable] in GHC.Tc.Instance.Typeable.
trGhcPrimModuleName :: Name
trGhcPrimModuleName   = Module -> FastString -> Unique -> Name
varQual Module
gHC_TYPES         (String -> FastString
fsLit String
"tr$ModuleGHCPrim")  Unique
trGhcPrimModuleKey

-- Typeable KindReps for some common cases
starKindRepName, starArrStarKindRepName, starArrStarArrStarKindRepName :: Name
starKindRepName :: Name
starKindRepName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_TYPES         (String -> FastString
fsLit String
"krep$*")         Unique
starKindRepKey
starArrStarKindRepName :: Name
starArrStarKindRepName = Module -> FastString -> Unique -> Name
varQual Module
gHC_TYPES         (String -> FastString
fsLit String
"krep$*Arr*")     Unique
starArrStarKindRepKey
starArrStarArrStarKindRepName :: Name
starArrStarArrStarKindRepName = Module -> FastString -> Unique -> Name
varQual Module
gHC_TYPES  (String -> FastString
fsLit String
"krep$*->*->*")   Unique
starArrStarArrStarKindRepKey

-- WithDict
withDictClassName :: Name
withDictClassName :: Name
withDictClassName     = Module -> FastString -> Unique -> Name
clsQual Module
gHC_MAGIC_DICT (String -> FastString
fsLit String
"WithDict") Unique
withDictClassKey

-- Custom type errors
errorMessageTypeErrorFamName
  , typeErrorTextDataConName
  , typeErrorAppendDataConName
  , typeErrorVAppendDataConName
  , typeErrorShowTypeDataConName
  :: Name

errorMessageTypeErrorFamName :: Name
errorMessageTypeErrorFamName =
  Module -> FastString -> Unique -> Name
tcQual Module
gHC_TYPEERROR (String -> FastString
fsLit String
"TypeError") Unique
errorMessageTypeErrorFamKey

typeErrorTextDataConName :: Name
typeErrorTextDataConName =
  Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPEERROR (String -> FastString
fsLit String
"Text") Unique
typeErrorTextDataConKey

typeErrorAppendDataConName :: Name
typeErrorAppendDataConName =
  Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPEERROR (String -> FastString
fsLit String
":<>:") Unique
typeErrorAppendDataConKey

typeErrorVAppendDataConName :: Name
typeErrorVAppendDataConName =
  Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPEERROR (String -> FastString
fsLit String
":$$:") Unique
typeErrorVAppendDataConKey

typeErrorShowTypeDataConName :: Name
typeErrorShowTypeDataConName =
  Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPEERROR (String -> FastString
fsLit String
"ShowType") Unique
typeErrorShowTypeDataConKey

-- Unsafe coercion proofs
unsafeEqualityProofName, unsafeEqualityTyConName, unsafeCoercePrimName,
  unsafeReflDataConName :: Name
unsafeEqualityProofName :: Name
unsafeEqualityProofName = Module -> FastString -> Unique -> Name
varQual Module
uNSAFE_COERCE (String -> FastString
fsLit String
"unsafeEqualityProof") Unique
unsafeEqualityProofIdKey
unsafeEqualityTyConName :: Name
unsafeEqualityTyConName = Module -> FastString -> Unique -> Name
tcQual Module
uNSAFE_COERCE (String -> FastString
fsLit String
"UnsafeEquality") Unique
unsafeEqualityTyConKey
unsafeReflDataConName :: Name
unsafeReflDataConName   = Module -> FastString -> Unique -> Name
dcQual Module
uNSAFE_COERCE (String -> FastString
fsLit String
"UnsafeRefl")     Unique
unsafeReflDataConKey
unsafeCoercePrimName :: Name
unsafeCoercePrimName    = Module -> FastString -> Unique -> Name
varQual Module
uNSAFE_COERCE (String -> FastString
fsLit String
"unsafeCoerce#") Unique
unsafeCoercePrimIdKey

-- Dynamic
toDynName :: Name
toDynName :: Name
toDynName = Module -> FastString -> Unique -> Name
varQual Module
dYNAMIC (String -> FastString
fsLit String
"toDyn") Unique
toDynIdKey

-- Class Data
dataClassName :: Name
dataClassName :: Name
dataClassName = Module -> FastString -> Unique -> Name
clsQual Module
gENERICS (String -> FastString
fsLit String
"Data") Unique
dataClassKey

-- Error module
assertErrorName    :: Name
assertErrorName :: Name
assertErrorName   = Module -> FastString -> Unique -> Name
varQual Module
gHC_IO_Exception (String -> FastString
fsLit String
"assertError") Unique
assertErrorIdKey

-- Debug.Trace
traceName          :: Name
traceName :: Name
traceName         = Module -> FastString -> Unique -> Name
varQual Module
dEBUG_TRACE (String -> FastString
fsLit String
"trace") Unique
traceKey

-- Enum module (Enum, Bounded)
enumClassName, enumFromName, enumFromToName, enumFromThenName,
    enumFromThenToName, boundedClassName :: Name
enumClassName :: Name
enumClassName      = Module -> FastString -> Unique -> Name
clsQual Module
gHC_ENUM (String -> FastString
fsLit String
"Enum")           Unique
enumClassKey
enumFromName :: Name
enumFromName       = Module -> FastString -> Unique -> Name
varQual Module
gHC_ENUM (String -> FastString
fsLit String
"enumFrom")       Unique
enumFromClassOpKey
enumFromToName :: Name
enumFromToName     = Module -> FastString -> Unique -> Name
varQual Module
gHC_ENUM (String -> FastString
fsLit String
"enumFromTo")     Unique
enumFromToClassOpKey
enumFromThenName :: Name
enumFromThenName   = Module -> FastString -> Unique -> Name
varQual Module
gHC_ENUM (String -> FastString
fsLit String
"enumFromThen")   Unique
enumFromThenClassOpKey
enumFromThenToName :: Name
enumFromThenToName = Module -> FastString -> Unique -> Name
varQual Module
gHC_ENUM (String -> FastString
fsLit String
"enumFromThenTo") Unique
enumFromThenToClassOpKey
boundedClassName :: Name
boundedClassName   = Module -> FastString -> Unique -> Name
clsQual Module
gHC_ENUM (String -> FastString
fsLit String
"Bounded")        Unique
boundedClassKey

-- List functions
concatName, filterName, zipName :: Name
concatName :: Name
concatName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_LIST (String -> FastString
fsLit String
"concat") Unique
concatIdKey
filterName :: Name
filterName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_LIST (String -> FastString
fsLit String
"filter") Unique
filterIdKey
zipName :: Name
zipName           = Module -> FastString -> Unique -> Name
varQual Module
gHC_LIST (String -> FastString
fsLit String
"zip")    Unique
zipIdKey

-- Overloaded lists
isListClassName, fromListName, fromListNName, toListName :: Name
isListClassName :: Name
isListClassName = Module -> FastString -> Unique -> Name
clsQual Module
gHC_IS_LIST (String -> FastString
fsLit String
"IsList")    Unique
isListClassKey
fromListName :: Name
fromListName    = Module -> FastString -> Unique -> Name
varQual Module
gHC_IS_LIST (String -> FastString
fsLit String
"fromList")  Unique
fromListClassOpKey
fromListNName :: Name
fromListNName   = Module -> FastString -> Unique -> Name
varQual Module
gHC_IS_LIST (String -> FastString
fsLit String
"fromListN") Unique
fromListNClassOpKey
toListName :: Name
toListName      = Module -> FastString -> Unique -> Name
varQual Module
gHC_IS_LIST (String -> FastString
fsLit String
"toList")    Unique
toListClassOpKey

-- HasField class ops
getFieldName, setFieldName :: Name
getFieldName :: Name
getFieldName   = Module -> FastString -> Unique -> Name
varQual Module
gHC_RECORDS (String -> FastString
fsLit String
"getField") Unique
getFieldClassOpKey
setFieldName :: Name
setFieldName   = Module -> FastString -> Unique -> Name
varQual Module
gHC_RECORDS (String -> FastString
fsLit String
"setField") Unique
setFieldClassOpKey

-- Class Show
showClassName :: Name
showClassName :: Name
showClassName   = Module -> FastString -> Unique -> Name
clsQual Module
gHC_SHOW (String -> FastString
fsLit String
"Show")      Unique
showClassKey

-- Class Read
readClassName :: Name
readClassName :: Name
readClassName   = Module -> FastString -> Unique -> Name
clsQual Module
gHC_READ (String -> FastString
fsLit String
"Read")      Unique
readClassKey

-- Classes Generic and Generic1, Datatype, Constructor and Selector
genClassName, gen1ClassName, datatypeClassName, constructorClassName,
  selectorClassName :: Name
genClassName :: Name
genClassName  = Module -> FastString -> Unique -> Name
clsQual Module
gHC_GENERICS (String -> FastString
fsLit String
"Generic")  Unique
genClassKey
gen1ClassName :: Name
gen1ClassName = Module -> FastString -> Unique -> Name
clsQual Module
gHC_GENERICS (String -> FastString
fsLit String
"Generic1") Unique
gen1ClassKey

datatypeClassName :: Name
datatypeClassName    = Module -> FastString -> Unique -> Name
clsQual Module
gHC_GENERICS (String -> FastString
fsLit String
"Datatype")    Unique
datatypeClassKey
constructorClassName :: Name
constructorClassName = Module -> FastString -> Unique -> Name
clsQual Module
gHC_GENERICS (String -> FastString
fsLit String
"Constructor") Unique
constructorClassKey
selectorClassName :: Name
selectorClassName    = Module -> FastString -> Unique -> Name
clsQual Module
gHC_GENERICS (String -> FastString
fsLit String
"Selector")    Unique
selectorClassKey

genericClassNames :: [Name]
genericClassNames :: [Name]
genericClassNames = [Name
genClassName, Name
gen1ClassName]

-- GHCi things
ghciIoClassName, ghciStepIoMName :: Name
ghciIoClassName :: Name
ghciIoClassName = Module -> FastString -> Unique -> Name
clsQual Module
gHC_GHCI (String -> FastString
fsLit String
"GHCiSandboxIO") Unique
ghciIoClassKey
ghciStepIoMName :: Name
ghciStepIoMName = Module -> FastString -> Unique -> Name
varQual Module
gHC_GHCI (String -> FastString
fsLit String
"ghciStepIO") Unique
ghciStepIoMClassOpKey

-- IO things
ioTyConName, ioDataConName,
  thenIOName, bindIOName, returnIOName, failIOName :: Name
ioTyConName :: Name
ioTyConName       = Module -> FastString -> Unique -> Name
tcQual  Module
gHC_TYPES (String -> FastString
fsLit String
"IO")       Unique
ioTyConKey
ioDataConName :: Name
ioDataConName     = Module -> FastString -> Unique -> Name
dcQual  Module
gHC_TYPES (String -> FastString
fsLit String
"IO")       Unique
ioDataConKey
thenIOName :: Name
thenIOName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE  (String -> FastString
fsLit String
"thenIO")   Unique
thenIOIdKey
bindIOName :: Name
bindIOName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE  (String -> FastString
fsLit String
"bindIO")   Unique
bindIOIdKey
returnIOName :: Name
returnIOName      = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE  (String -> FastString
fsLit String
"returnIO") Unique
returnIOIdKey
failIOName :: Name
failIOName        = Module -> FastString -> Unique -> Name
varQual Module
gHC_IO    (String -> FastString
fsLit String
"failIO")   Unique
failIOIdKey

-- IO things
printName :: Name
printName :: Name
printName         = Module -> FastString -> Unique -> Name
varQual Module
sYSTEM_IO (String -> FastString
fsLit String
"print") Unique
printIdKey

-- Int, Word, and Addr things
int8TyConName, int16TyConName, int32TyConName, int64TyConName :: Name
int8TyConName :: Name
int8TyConName     = Module -> FastString -> Unique -> Name
tcQual Module
gHC_INT  (String -> FastString
fsLit String
"Int8")  Unique
int8TyConKey
int16TyConName :: Name
int16TyConName    = Module -> FastString -> Unique -> Name
tcQual Module
gHC_INT  (String -> FastString
fsLit String
"Int16") Unique
int16TyConKey
int32TyConName :: Name
int32TyConName    = Module -> FastString -> Unique -> Name
tcQual Module
gHC_INT  (String -> FastString
fsLit String
"Int32") Unique
int32TyConKey
int64TyConName :: Name
int64TyConName    = Module -> FastString -> Unique -> Name
tcQual Module
gHC_INT  (String -> FastString
fsLit String
"Int64") Unique
int64TyConKey

-- Word module
word8TyConName, word16TyConName, word32TyConName, word64TyConName :: Name
word8TyConName :: Name
word8TyConName    = Module -> FastString -> Unique -> Name
tcQual  Module
gHC_WORD (String -> FastString
fsLit String
"Word8")  Unique
word8TyConKey
word16TyConName :: Name
word16TyConName   = Module -> FastString -> Unique -> Name
tcQual  Module
gHC_WORD (String -> FastString
fsLit String
"Word16") Unique
word16TyConKey
word32TyConName :: Name
word32TyConName   = Module -> FastString -> Unique -> Name
tcQual  Module
gHC_WORD (String -> FastString
fsLit String
"Word32") Unique
word32TyConKey
word64TyConName :: Name
word64TyConName   = Module -> FastString -> Unique -> Name
tcQual  Module
gHC_WORD (String -> FastString
fsLit String
"Word64") Unique
word64TyConKey

-- PrelPtr module
ptrTyConName, funPtrTyConName :: Name
ptrTyConName :: Name
ptrTyConName      = Module -> FastString -> Unique -> Name
tcQual   Module
gHC_PTR (String -> FastString
fsLit String
"Ptr")    Unique
ptrTyConKey
funPtrTyConName :: Name
funPtrTyConName   = Module -> FastString -> Unique -> Name
tcQual   Module
gHC_PTR (String -> FastString
fsLit String
"FunPtr") Unique
funPtrTyConKey

-- Foreign objects and weak pointers
stablePtrTyConName, newStablePtrName :: Name
stablePtrTyConName :: Name
stablePtrTyConName    = Module -> FastString -> Unique -> Name
tcQual   Module
gHC_STABLE (String -> FastString
fsLit String
"StablePtr")    Unique
stablePtrTyConKey
newStablePtrName :: Name
newStablePtrName      = Module -> FastString -> Unique -> Name
varQual  Module
gHC_STABLE (String -> FastString
fsLit String
"newStablePtr") Unique
newStablePtrIdKey

-- Recursive-do notation
monadFixClassName, mfixName :: Name
monadFixClassName :: Name
monadFixClassName  = Module -> FastString -> Unique -> Name
clsQual Module
mONAD_FIX (String -> FastString
fsLit String
"MonadFix") Unique
monadFixClassKey
mfixName :: Name
mfixName           = Module -> FastString -> Unique -> Name
varQual Module
mONAD_FIX (String -> FastString
fsLit String
"mfix")     Unique
mfixIdKey

-- Arrow notation
arrAName, composeAName, firstAName, appAName, choiceAName, loopAName :: Name
arrAName :: Name
arrAName           = Module -> FastString -> Unique -> Name
varQual Module
aRROW (String -> FastString
fsLit String
"arr")       Unique
arrAIdKey
composeAName :: Name
composeAName       = Module -> FastString -> Unique -> Name
varQual Module
gHC_DESUGAR (String -> FastString
fsLit String
">>>") Unique
composeAIdKey
firstAName :: Name
firstAName         = Module -> FastString -> Unique -> Name
varQual Module
aRROW (String -> FastString
fsLit String
"first")     Unique
firstAIdKey
appAName :: Name
appAName           = Module -> FastString -> Unique -> Name
varQual Module
aRROW (String -> FastString
fsLit String
"app")       Unique
appAIdKey
choiceAName :: Name
choiceAName        = Module -> FastString -> Unique -> Name
varQual Module
aRROW (String -> FastString
fsLit String
"|||")       Unique
choiceAIdKey
loopAName :: Name
loopAName          = Module -> FastString -> Unique -> Name
varQual Module
aRROW (String -> FastString
fsLit String
"loop")      Unique
loopAIdKey

-- Monad comprehensions
guardMName, liftMName, mzipName :: Name
guardMName :: Name
guardMName         = Module -> FastString -> Unique -> Name
varQual Module
mONAD (String -> FastString
fsLit String
"guard")    Unique
guardMIdKey
liftMName :: Name
liftMName          = Module -> FastString -> Unique -> Name
varQual Module
mONAD (String -> FastString
fsLit String
"liftM")    Unique
liftMIdKey
mzipName :: Name
mzipName           = Module -> FastString -> Unique -> Name
varQual Module
mONAD_ZIP (String -> FastString
fsLit String
"mzip") Unique
mzipIdKey


-- Annotation type checking
toAnnotationWrapperName :: Name
toAnnotationWrapperName :: Name
toAnnotationWrapperName = Module -> FastString -> Unique -> Name
varQual Module
gHC_DESUGAR (String -> FastString
fsLit String
"toAnnotationWrapper") Unique
toAnnotationWrapperIdKey

-- Other classes, needed for type defaulting
monadPlusClassName, isStringClassName :: Name
monadPlusClassName :: Name
monadPlusClassName  = Module -> FastString -> Unique -> Name
clsQual Module
mONAD (String -> FastString
fsLit String
"MonadPlus")      Unique
monadPlusClassKey
isStringClassName :: Name
isStringClassName   = Module -> FastString -> Unique -> Name
clsQual Module
dATA_STRING (String -> FastString
fsLit String
"IsString") Unique
isStringClassKey

-- Type-level naturals
knownNatClassName :: Name
knownNatClassName :: Name
knownNatClassName     = Module -> FastString -> Unique -> Name
clsQual Module
gHC_TYPENATS (String -> FastString
fsLit String
"KnownNat") Unique
knownNatClassNameKey
knownSymbolClassName :: Name
knownSymbolClassName :: Name
knownSymbolClassName  = Module -> FastString -> Unique -> Name
clsQual Module
gHC_TYPELITS (String -> FastString
fsLit String
"KnownSymbol") Unique
knownSymbolClassNameKey
knownCharClassName :: Name
knownCharClassName :: Name
knownCharClassName  = Module -> FastString -> Unique -> Name
clsQual Module
gHC_TYPELITS (String -> FastString
fsLit String
"KnownChar") Unique
knownCharClassNameKey

-- Overloaded labels
fromLabelClassOpName :: Name
fromLabelClassOpName :: Name
fromLabelClassOpName
 = Module -> FastString -> Unique -> Name
varQual Module
gHC_OVER_LABELS (String -> FastString
fsLit String
"fromLabel") Unique
fromLabelClassOpKey

-- Implicit Parameters
ipClassName :: Name
ipClassName :: Name
ipClassName
  = Module -> FastString -> Unique -> Name
clsQual Module
gHC_CLASSES (String -> FastString
fsLit String
"IP") Unique
ipClassKey

-- Overloaded record fields
hasFieldClassName :: Name
hasFieldClassName :: Name
hasFieldClassName
 = Module -> FastString -> Unique -> Name
clsQual Module
gHC_RECORDS (String -> FastString
fsLit String
"HasField") Unique
hasFieldClassNameKey

-- Source Locations
callStackTyConName, emptyCallStackName, pushCallStackName,
  srcLocDataConName :: Name
callStackTyConName :: Name
callStackTyConName
  = Module -> FastString -> Unique -> Name
tcQual Module
gHC_STACK_TYPES  (String -> FastString
fsLit String
"CallStack") Unique
callStackTyConKey
emptyCallStackName :: Name
emptyCallStackName
  = Module -> FastString -> Unique -> Name
varQual Module
gHC_STACK_TYPES (String -> FastString
fsLit String
"emptyCallStack") Unique
emptyCallStackKey
pushCallStackName :: Name
pushCallStackName
  = Module -> FastString -> Unique -> Name
varQual Module
gHC_STACK_TYPES (String -> FastString
fsLit String
"pushCallStack") Unique
pushCallStackKey
srcLocDataConName :: Name
srcLocDataConName
  = Module -> FastString -> Unique -> Name
dcQual Module
gHC_STACK_TYPES  (String -> FastString
fsLit String
"SrcLoc")    Unique
srcLocDataConKey

-- plugins
pLUGINS :: Module
pLUGINS :: Module
pLUGINS = FastString -> Module
mkThisGhcModule (String -> FastString
fsLit String
"GHC.Driver.Plugins")
pluginTyConName :: Name
pluginTyConName :: Name
pluginTyConName = Module -> FastString -> Unique -> Name
tcQual Module
pLUGINS (String -> FastString
fsLit String
"Plugin") Unique
pluginTyConKey
frontendPluginTyConName :: Name
frontendPluginTyConName :: Name
frontendPluginTyConName = Module -> FastString -> Unique -> Name
tcQual Module
pLUGINS (String -> FastString
fsLit String
"FrontendPlugin") Unique
frontendPluginTyConKey

-- Static pointers
makeStaticName :: Name
makeStaticName :: Name
makeStaticName =
    Module -> FastString -> Unique -> Name
varQual Module
gHC_STATICPTR_INTERNAL (String -> FastString
fsLit String
"makeStatic") Unique
makeStaticKey

staticPtrInfoTyConName :: Name
staticPtrInfoTyConName :: Name
staticPtrInfoTyConName =
    Module -> FastString -> Unique -> Name
tcQual Module
gHC_STATICPTR (String -> FastString
fsLit String
"StaticPtrInfo") Unique
staticPtrInfoTyConKey

staticPtrInfoDataConName :: Name
staticPtrInfoDataConName :: Name
staticPtrInfoDataConName =
    Module -> FastString -> Unique -> Name
dcQual Module
gHC_STATICPTR (String -> FastString
fsLit String
"StaticPtrInfo") Unique
staticPtrInfoDataConKey

staticPtrTyConName :: Name
staticPtrTyConName :: Name
staticPtrTyConName =
    Module -> FastString -> Unique -> Name
tcQual Module
gHC_STATICPTR (String -> FastString
fsLit String
"StaticPtr") Unique
staticPtrTyConKey

staticPtrDataConName :: Name
staticPtrDataConName :: Name
staticPtrDataConName =
    Module -> FastString -> Unique -> Name
dcQual Module
gHC_STATICPTR (String -> FastString
fsLit String
"StaticPtr") Unique
staticPtrDataConKey

fromStaticPtrName :: Name
fromStaticPtrName :: Name
fromStaticPtrName =
    Module -> FastString -> Unique -> Name
varQual Module
gHC_STATICPTR (String -> FastString
fsLit String
"fromStaticPtr") Unique
fromStaticPtrClassOpKey

fingerprintDataConName :: Name
fingerprintDataConName :: Name
fingerprintDataConName =
    Module -> FastString -> Unique -> Name
dcQual Module
gHC_FINGERPRINT_TYPE (String -> FastString
fsLit String
"Fingerprint") Unique
fingerprintDataConKey

{-
************************************************************************
*                                                                      *
\subsection{Local helpers}
*                                                                      *
************************************************************************

All these are original names; hence mkOrig
-}

{-# INLINE varQual #-}
{-# INLINE tcQual #-}
{-# INLINE clsQual #-}
{-# INLINE dcQual #-}
varQual, tcQual, clsQual, dcQual :: Module -> FastString -> Unique -> Name
varQual :: Module -> FastString -> Unique -> Name
varQual  Module
modu FastString
str Unique
unique = NameSpace -> Module -> FastString -> Unique -> Name
mk_known_key_name NameSpace
varName Module
modu FastString
str Unique
unique
tcQual :: Module -> FastString -> Unique -> Name
tcQual   Module
modu FastString
str Unique
unique = NameSpace -> Module -> FastString -> Unique -> Name
mk_known_key_name NameSpace
tcName Module
modu FastString
str Unique
unique
clsQual :: Module -> FastString -> Unique -> Name
clsQual  Module
modu FastString
str Unique
unique = NameSpace -> Module -> FastString -> Unique -> Name
mk_known_key_name NameSpace
clsName Module
modu FastString
str Unique
unique
dcQual :: Module -> FastString -> Unique -> Name
dcQual   Module
modu FastString
str Unique
unique = NameSpace -> Module -> FastString -> Unique -> Name
mk_known_key_name NameSpace
dataName Module
modu FastString
str Unique
unique

mk_known_key_name :: NameSpace -> Module -> FastString -> Unique -> Name
{-# INLINE mk_known_key_name #-}
mk_known_key_name :: NameSpace -> Module -> FastString -> Unique -> Name
mk_known_key_name NameSpace
space Module
modu FastString
str Unique
unique
  = Unique -> Module -> OccName -> SrcSpan -> Name
mkExternalName Unique
unique Module
modu (NameSpace -> FastString -> OccName
mkOccNameFS NameSpace
space FastString
str) SrcSpan
noSrcSpan


{-
************************************************************************
*                                                                      *
\subsubsection[Uniques-prelude-Classes]{@Uniques@ for wired-in @Classes@}
*                                                                      *
************************************************************************
--MetaHaskell extension hand allocate keys here
-}

boundedClassKey, enumClassKey, eqClassKey, floatingClassKey,
    fractionalClassKey, integralClassKey, monadClassKey, dataClassKey,
    functorClassKey, numClassKey, ordClassKey, readClassKey, realClassKey,
    realFloatClassKey, realFracClassKey, showClassKey, ixClassKey :: Unique
boundedClassKey :: Unique
boundedClassKey         = Int -> Unique
mkPreludeClassUnique Int
1
enumClassKey :: Unique
enumClassKey            = Int -> Unique
mkPreludeClassUnique Int
2
eqClassKey :: Unique
eqClassKey              = Int -> Unique
mkPreludeClassUnique Int
3
floatingClassKey :: Unique
floatingClassKey        = Int -> Unique
mkPreludeClassUnique Int
5
fractionalClassKey :: Unique
fractionalClassKey      = Int -> Unique
mkPreludeClassUnique Int
6
integralClassKey :: Unique
integralClassKey        = Int -> Unique
mkPreludeClassUnique Int
7
monadClassKey :: Unique
monadClassKey           = Int -> Unique
mkPreludeClassUnique Int
8
dataClassKey :: Unique
dataClassKey            = Int -> Unique
mkPreludeClassUnique Int
9
functorClassKey :: Unique
functorClassKey         = Int -> Unique
mkPreludeClassUnique Int
10
numClassKey :: Unique
numClassKey             = Int -> Unique
mkPreludeClassUnique Int
11
ordClassKey :: Unique
ordClassKey             = Int -> Unique
mkPreludeClassUnique Int
12
readClassKey :: Unique
readClassKey            = Int -> Unique
mkPreludeClassUnique Int
13
realClassKey :: Unique
realClassKey            = Int -> Unique
mkPreludeClassUnique Int
14
realFloatClassKey :: Unique
realFloatClassKey       = Int -> Unique
mkPreludeClassUnique Int
15
realFracClassKey :: Unique
realFracClassKey        = Int -> Unique
mkPreludeClassUnique Int
16
showClassKey :: Unique
showClassKey            = Int -> Unique
mkPreludeClassUnique Int
17
ixClassKey :: Unique
ixClassKey              = Int -> Unique
mkPreludeClassUnique Int
18

typeableClassKey :: Unique
typeableClassKey :: Unique
typeableClassKey        = Int -> Unique
mkPreludeClassUnique Int
20

withDictClassKey :: Unique
withDictClassKey :: Unique
withDictClassKey        = Int -> Unique
mkPreludeClassUnique Int
21

monadFixClassKey :: Unique
monadFixClassKey :: Unique
monadFixClassKey        = Int -> Unique
mkPreludeClassUnique Int
28

monadFailClassKey :: Unique
monadFailClassKey :: Unique
monadFailClassKey       = Int -> Unique
mkPreludeClassUnique Int
29

monadPlusClassKey, randomClassKey, randomGenClassKey :: Unique
monadPlusClassKey :: Unique
monadPlusClassKey       = Int -> Unique
mkPreludeClassUnique Int
30
randomClassKey :: Unique
randomClassKey          = Int -> Unique
mkPreludeClassUnique Int
31
randomGenClassKey :: Unique
randomGenClassKey       = Int -> Unique
mkPreludeClassUnique Int
32

isStringClassKey :: Unique
isStringClassKey :: Unique
isStringClassKey        = Int -> Unique
mkPreludeClassUnique Int
33

applicativeClassKey, foldableClassKey, traversableClassKey :: Unique
applicativeClassKey :: Unique
applicativeClassKey     = Int -> Unique
mkPreludeClassUnique Int
34
foldableClassKey :: Unique
foldableClassKey        = Int -> Unique
mkPreludeClassUnique Int
35
traversableClassKey :: Unique
traversableClassKey     = Int -> Unique
mkPreludeClassUnique Int
36

genClassKey, gen1ClassKey, datatypeClassKey, constructorClassKey,
  selectorClassKey :: Unique
genClassKey :: Unique
genClassKey   = Int -> Unique
mkPreludeClassUnique Int
37
gen1ClassKey :: Unique
gen1ClassKey  = Int -> Unique
mkPreludeClassUnique Int
38

datatypeClassKey :: Unique
datatypeClassKey    = Int -> Unique
mkPreludeClassUnique Int
39
constructorClassKey :: Unique
constructorClassKey = Int -> Unique
mkPreludeClassUnique Int
40
selectorClassKey :: Unique
selectorClassKey    = Int -> Unique
mkPreludeClassUnique Int
41

-- KnownNat: see Note [KnownNat & KnownSymbol and EvLit] in GHC.Tc.Types.Evidence
knownNatClassNameKey :: Unique
knownNatClassNameKey :: Unique
knownNatClassNameKey = Int -> Unique
mkPreludeClassUnique Int
42

-- KnownSymbol: see Note [KnownNat & KnownSymbol and EvLit] in GHC.Tc.Types.Evidence
knownSymbolClassNameKey :: Unique
knownSymbolClassNameKey :: Unique
knownSymbolClassNameKey = Int -> Unique
mkPreludeClassUnique Int
43

knownCharClassNameKey :: Unique
knownCharClassNameKey :: Unique
knownCharClassNameKey = Int -> Unique
mkPreludeClassUnique Int
44

ghciIoClassKey :: Unique
ghciIoClassKey :: Unique
ghciIoClassKey = Int -> Unique
mkPreludeClassUnique Int
45

semigroupClassKey, monoidClassKey :: Unique
semigroupClassKey :: Unique
semigroupClassKey = Int -> Unique
mkPreludeClassUnique Int
47
monoidClassKey :: Unique
monoidClassKey    = Int -> Unique
mkPreludeClassUnique Int
48

-- Implicit Parameters
ipClassKey :: Unique
ipClassKey :: Unique
ipClassKey = Int -> Unique
mkPreludeClassUnique Int
49

-- Overloaded record fields
hasFieldClassNameKey :: Unique
hasFieldClassNameKey :: Unique
hasFieldClassNameKey = Int -> Unique
mkPreludeClassUnique Int
50


---------------- Template Haskell -------------------
--      GHC.Builtin.Names.TH: USES ClassUniques 200-299
-----------------------------------------------------

{-
************************************************************************
*                                                                      *
\subsubsection[Uniques-prelude-TyCons]{@Uniques@ for wired-in @TyCons@}
*                                                                      *
************************************************************************
-}

addrPrimTyConKey, arrayPrimTyConKey, boolTyConKey,
    byteArrayPrimTyConKey, charPrimTyConKey, charTyConKey, doublePrimTyConKey,
    doubleTyConKey, floatPrimTyConKey, floatTyConKey, funTyConKey,
    intPrimTyConKey, intTyConKey, int8TyConKey, int16TyConKey,
    int8PrimTyConKey, int16PrimTyConKey, int32PrimTyConKey, int32TyConKey,
    int64PrimTyConKey, int64TyConKey,
    integerTyConKey, naturalTyConKey,
    listTyConKey, foreignObjPrimTyConKey, maybeTyConKey,
    weakPrimTyConKey, mutableArrayPrimTyConKey,
    mutableByteArrayPrimTyConKey, orderingTyConKey, mVarPrimTyConKey,
    ratioTyConKey, rationalTyConKey, realWorldTyConKey, stablePtrPrimTyConKey,
    stablePtrTyConKey, eqTyConKey, heqTyConKey, ioPortPrimTyConKey,
    smallArrayPrimTyConKey, smallMutableArrayPrimTyConKey,
    stringTyConKey :: Unique
addrPrimTyConKey :: Unique
addrPrimTyConKey                        = Int -> Unique
mkPreludeTyConUnique  Int
1
arrayPrimTyConKey :: Unique
arrayPrimTyConKey                       = Int -> Unique
mkPreludeTyConUnique  Int
3
boolTyConKey :: Unique
boolTyConKey                            = Int -> Unique
mkPreludeTyConUnique  Int
4
byteArrayPrimTyConKey :: Unique
byteArrayPrimTyConKey                   = Int -> Unique
mkPreludeTyConUnique  Int
5
stringTyConKey :: Unique
stringTyConKey                          = Int -> Unique
mkPreludeTyConUnique  Int
6
charPrimTyConKey :: Unique
charPrimTyConKey                        = Int -> Unique
mkPreludeTyConUnique  Int
7
charTyConKey :: Unique
charTyConKey                            = Int -> Unique
mkPreludeTyConUnique  Int
8
doublePrimTyConKey :: Unique
doublePrimTyConKey                      = Int -> Unique
mkPreludeTyConUnique  Int
9
doubleTyConKey :: Unique
doubleTyConKey                          = Int -> Unique
mkPreludeTyConUnique Int
10
floatPrimTyConKey :: Unique
floatPrimTyConKey                       = Int -> Unique
mkPreludeTyConUnique Int
11
floatTyConKey :: Unique
floatTyConKey                           = Int -> Unique
mkPreludeTyConUnique Int
12
funTyConKey :: Unique
funTyConKey                             = Int -> Unique
mkPreludeTyConUnique Int
13
intPrimTyConKey :: Unique
intPrimTyConKey                         = Int -> Unique
mkPreludeTyConUnique Int
14
intTyConKey :: Unique
intTyConKey                             = Int -> Unique
mkPreludeTyConUnique Int
15
int8PrimTyConKey :: Unique
int8PrimTyConKey                        = Int -> Unique
mkPreludeTyConUnique Int
16
int8TyConKey :: Unique
int8TyConKey                            = Int -> Unique
mkPreludeTyConUnique Int
17
int16PrimTyConKey :: Unique
int16PrimTyConKey                       = Int -> Unique
mkPreludeTyConUnique Int
18
int16TyConKey :: Unique
int16TyConKey                           = Int -> Unique
mkPreludeTyConUnique Int
19
int32PrimTyConKey :: Unique
int32PrimTyConKey                       = Int -> Unique
mkPreludeTyConUnique Int
20
int32TyConKey :: Unique
int32TyConKey                           = Int -> Unique
mkPreludeTyConUnique Int
21
int64PrimTyConKey :: Unique
int64PrimTyConKey                       = Int -> Unique
mkPreludeTyConUnique Int
22
int64TyConKey :: Unique
int64TyConKey                           = Int -> Unique
mkPreludeTyConUnique Int
23
integerTyConKey :: Unique
integerTyConKey                         = Int -> Unique
mkPreludeTyConUnique Int
24
naturalTyConKey :: Unique
naturalTyConKey                         = Int -> Unique
mkPreludeTyConUnique Int
25

listTyConKey :: Unique
listTyConKey                            = Int -> Unique
mkPreludeTyConUnique Int
26
foreignObjPrimTyConKey :: Unique
foreignObjPrimTyConKey                  = Int -> Unique
mkPreludeTyConUnique Int
27
maybeTyConKey :: Unique
maybeTyConKey                           = Int -> Unique
mkPreludeTyConUnique Int
28
weakPrimTyConKey :: Unique
weakPrimTyConKey                        = Int -> Unique
mkPreludeTyConUnique Int
29
mutableArrayPrimTyConKey :: Unique
mutableArrayPrimTyConKey                = Int -> Unique
mkPreludeTyConUnique Int
30
mutableByteArrayPrimTyConKey :: Unique
mutableByteArrayPrimTyConKey            = Int -> Unique
mkPreludeTyConUnique Int
31
orderingTyConKey :: Unique
orderingTyConKey                        = Int -> Unique
mkPreludeTyConUnique Int
32
mVarPrimTyConKey :: Unique
mVarPrimTyConKey                        = Int -> Unique
mkPreludeTyConUnique Int
33
ioPortPrimTyConKey :: Unique
ioPortPrimTyConKey                      = Int -> Unique
mkPreludeTyConUnique Int
34
ratioTyConKey :: Unique
ratioTyConKey                           = Int -> Unique
mkPreludeTyConUnique Int
35
rationalTyConKey :: Unique
rationalTyConKey                        = Int -> Unique
mkPreludeTyConUnique Int
36
realWorldTyConKey :: Unique
realWorldTyConKey                       = Int -> Unique
mkPreludeTyConUnique Int
37
stablePtrPrimTyConKey :: Unique
stablePtrPrimTyConKey                   = Int -> Unique
mkPreludeTyConUnique Int
38
stablePtrTyConKey :: Unique
stablePtrTyConKey                       = Int -> Unique
mkPreludeTyConUnique Int
39
eqTyConKey :: Unique
eqTyConKey                              = Int -> Unique
mkPreludeTyConUnique Int
40
heqTyConKey :: Unique
heqTyConKey                             = Int -> Unique
mkPreludeTyConUnique Int
41

statePrimTyConKey, stableNamePrimTyConKey, stableNameTyConKey,
    mutVarPrimTyConKey, ioTyConKey,
    wordPrimTyConKey, wordTyConKey, word8PrimTyConKey, word8TyConKey,
    word16PrimTyConKey, word16TyConKey, word32PrimTyConKey, word32TyConKey,
    word64PrimTyConKey, word64TyConKey,
    kindConKey, boxityConKey,
    typeConKey, threadIdPrimTyConKey, bcoPrimTyConKey, ptrTyConKey,
    funPtrTyConKey, tVarPrimTyConKey, eqPrimTyConKey,
    eqReprPrimTyConKey, eqPhantPrimTyConKey,
    compactPrimTyConKey, stackSnapshotPrimTyConKey,
    promptTagPrimTyConKey :: Unique
statePrimTyConKey :: Unique
statePrimTyConKey                       = Int -> Unique
mkPreludeTyConUnique Int
50
stableNamePrimTyConKey :: Unique
stableNamePrimTyConKey                  = Int -> Unique
mkPreludeTyConUnique Int
51
stableNameTyConKey :: Unique
stableNameTyConKey                      = Int -> Unique
mkPreludeTyConUnique Int
52
eqPrimTyConKey :: Unique
eqPrimTyConKey                          = Int -> Unique
mkPreludeTyConUnique Int
53
eqReprPrimTyConKey :: Unique
eqReprPrimTyConKey                      = Int -> Unique
mkPreludeTyConUnique Int
54
eqPhantPrimTyConKey :: Unique
eqPhantPrimTyConKey                     = Int -> Unique
mkPreludeTyConUnique Int
55
mutVarPrimTyConKey :: Unique
mutVarPrimTyConKey                      = Int -> Unique
mkPreludeTyConUnique Int
56
ioTyConKey :: Unique
ioTyConKey                              = Int -> Unique
mkPreludeTyConUnique Int
57
wordPrimTyConKey :: Unique
wordPrimTyConKey                        = Int -> Unique
mkPreludeTyConUnique Int
59
wordTyConKey :: Unique
wordTyConKey                            = Int -> Unique
mkPreludeTyConUnique Int
60
word8PrimTyConKey :: Unique
word8PrimTyConKey                       = Int -> Unique
mkPreludeTyConUnique Int
61
word8TyConKey :: Unique
word8TyConKey                           = Int -> Unique
mkPreludeTyConUnique Int
62
word16PrimTyConKey :: Unique
word16PrimTyConKey                      = Int -> Unique
mkPreludeTyConUnique Int
63
word16TyConKey :: Unique
word16TyConKey                          = Int -> Unique
mkPreludeTyConUnique Int
64
word32PrimTyConKey :: Unique
word32PrimTyConKey                      = Int -> Unique
mkPreludeTyConUnique Int
65
word32TyConKey :: Unique
word32TyConKey                          = Int -> Unique
mkPreludeTyConUnique Int
66
word64PrimTyConKey :: Unique
word64PrimTyConKey                      = Int -> Unique
mkPreludeTyConUnique Int
67
word64TyConKey :: Unique
word64TyConKey                          = Int -> Unique
mkPreludeTyConUnique Int
68
kindConKey :: Unique
kindConKey                              = Int -> Unique
mkPreludeTyConUnique Int
72
boxityConKey :: Unique
boxityConKey                            = Int -> Unique
mkPreludeTyConUnique Int
73
typeConKey :: Unique
typeConKey                              = Int -> Unique
mkPreludeTyConUnique Int
74
threadIdPrimTyConKey :: Unique
threadIdPrimTyConKey                    = Int -> Unique
mkPreludeTyConUnique Int
75
bcoPrimTyConKey :: Unique
bcoPrimTyConKey                         = Int -> Unique
mkPreludeTyConUnique Int
76
ptrTyConKey :: Unique
ptrTyConKey                             = Int -> Unique
mkPreludeTyConUnique Int
77
funPtrTyConKey :: Unique
funPtrTyConKey                          = Int -> Unique
mkPreludeTyConUnique Int
78
tVarPrimTyConKey :: Unique
tVarPrimTyConKey                        = Int -> Unique
mkPreludeTyConUnique Int
79
compactPrimTyConKey :: Unique
compactPrimTyConKey                     = Int -> Unique
mkPreludeTyConUnique Int
80
stackSnapshotPrimTyConKey :: Unique
stackSnapshotPrimTyConKey               = Int -> Unique
mkPreludeTyConUnique Int
81
promptTagPrimTyConKey :: Unique
promptTagPrimTyConKey                   = Int -> Unique
mkPreludeTyConUnique Int
82

eitherTyConKey :: Unique
eitherTyConKey :: Unique
eitherTyConKey                          = Int -> Unique
mkPreludeTyConUnique Int
84

voidTyConKey :: Unique
voidTyConKey :: Unique
voidTyConKey                            = Int -> Unique
mkPreludeTyConUnique Int
85

nonEmptyTyConKey :: Unique
nonEmptyTyConKey :: Unique
nonEmptyTyConKey                        = Int -> Unique
mkPreludeTyConUnique Int
86

-- Kind constructors
liftedTypeKindTyConKey, unliftedTypeKindTyConKey,
  tYPETyConKey, liftedRepTyConKey, unliftedRepTyConKey,
  constraintKindTyConKey, levityTyConKey, runtimeRepTyConKey,
  vecCountTyConKey, vecElemTyConKey,
  zeroBitRepTyConKey, zeroBitTypeTyConKey :: Unique
liftedTypeKindTyConKey :: Unique
liftedTypeKindTyConKey                  = Int -> Unique
mkPreludeTyConUnique Int
88
unliftedTypeKindTyConKey :: Unique
unliftedTypeKindTyConKey                = Int -> Unique
mkPreludeTyConUnique Int
89
tYPETyConKey :: Unique
tYPETyConKey                            = Int -> Unique
mkPreludeTyConUnique Int
90
constraintKindTyConKey :: Unique
constraintKindTyConKey                  = Int -> Unique
mkPreludeTyConUnique Int
92
levityTyConKey :: Unique
levityTyConKey                          = Int -> Unique
mkPreludeTyConUnique Int
94
runtimeRepTyConKey :: Unique
runtimeRepTyConKey                      = Int -> Unique
mkPreludeTyConUnique Int
95
vecCountTyConKey :: Unique
vecCountTyConKey                        = Int -> Unique
mkPreludeTyConUnique Int
96
vecElemTyConKey :: Unique
vecElemTyConKey                         = Int -> Unique
mkPreludeTyConUnique Int
97
liftedRepTyConKey :: Unique
liftedRepTyConKey                       = Int -> Unique
mkPreludeTyConUnique Int
98
unliftedRepTyConKey :: Unique
unliftedRepTyConKey                     = Int -> Unique
mkPreludeTyConUnique Int
99
zeroBitRepTyConKey :: Unique
zeroBitRepTyConKey                         = Int -> Unique
mkPreludeTyConUnique Int
100
zeroBitTypeTyConKey :: Unique
zeroBitTypeTyConKey                        = Int -> Unique
mkPreludeTyConUnique Int
101

pluginTyConKey, frontendPluginTyConKey :: Unique
pluginTyConKey :: Unique
pluginTyConKey                          = Int -> Unique
mkPreludeTyConUnique Int
102
frontendPluginTyConKey :: Unique
frontendPluginTyConKey                  = Int -> Unique
mkPreludeTyConUnique Int
103

trTyConTyConKey, trModuleTyConKey, trNameTyConKey,
  kindRepTyConKey, typeLitSortTyConKey :: Unique
trTyConTyConKey :: Unique
trTyConTyConKey                         = Int -> Unique
mkPreludeTyConUnique Int
104
trModuleTyConKey :: Unique
trModuleTyConKey                        = Int -> Unique
mkPreludeTyConUnique Int
105
trNameTyConKey :: Unique
trNameTyConKey                          = Int -> Unique
mkPreludeTyConUnique Int
106
kindRepTyConKey :: Unique
kindRepTyConKey                         = Int -> Unique
mkPreludeTyConUnique Int
107
typeLitSortTyConKey :: Unique
typeLitSortTyConKey                     = Int -> Unique
mkPreludeTyConUnique Int
108


-- Generics (Unique keys)
v1TyConKey, u1TyConKey, par1TyConKey, rec1TyConKey,
  k1TyConKey, m1TyConKey, sumTyConKey, prodTyConKey,
  compTyConKey, rTyConKey, dTyConKey,
  cTyConKey, sTyConKey, rec0TyConKey,
  d1TyConKey, c1TyConKey, s1TyConKey,
  repTyConKey, rep1TyConKey, uRecTyConKey,
  uAddrTyConKey, uCharTyConKey, uDoubleTyConKey,
  uFloatTyConKey, uIntTyConKey, uWordTyConKey :: Unique

v1TyConKey :: Unique
v1TyConKey    = Int -> Unique
mkPreludeTyConUnique Int
135
u1TyConKey :: Unique
u1TyConKey    = Int -> Unique
mkPreludeTyConUnique Int
136
par1TyConKey :: Unique
par1TyConKey  = Int -> Unique
mkPreludeTyConUnique Int
137
rec1TyConKey :: Unique
rec1TyConKey  = Int -> Unique
mkPreludeTyConUnique Int
138
k1TyConKey :: Unique
k1TyConKey    = Int -> Unique
mkPreludeTyConUnique Int
139
m1TyConKey :: Unique
m1TyConKey    = Int -> Unique
mkPreludeTyConUnique Int
140

sumTyConKey :: Unique
sumTyConKey   = Int -> Unique
mkPreludeTyConUnique Int
141
prodTyConKey :: Unique
prodTyConKey  = Int -> Unique
mkPreludeTyConUnique Int
142
compTyConKey :: Unique
compTyConKey  = Int -> Unique
mkPreludeTyConUnique Int
143

rTyConKey :: Unique
rTyConKey = Int -> Unique
mkPreludeTyConUnique Int
144
dTyConKey :: Unique
dTyConKey = Int -> Unique
mkPreludeTyConUnique Int
146
cTyConKey :: Unique
cTyConKey = Int -> Unique
mkPreludeTyConUnique Int
147
sTyConKey :: Unique
sTyConKey = Int -> Unique
mkPreludeTyConUnique Int
148

rec0TyConKey :: Unique
rec0TyConKey  = Int -> Unique
mkPreludeTyConUnique Int
149
d1TyConKey :: Unique
d1TyConKey    = Int -> Unique
mkPreludeTyConUnique Int
151
c1TyConKey :: Unique
c1TyConKey    = Int -> Unique
mkPreludeTyConUnique Int
152
s1TyConKey :: Unique
s1TyConKey    = Int -> Unique
mkPreludeTyConUnique Int
153

repTyConKey :: Unique
repTyConKey  = Int -> Unique
mkPreludeTyConUnique Int
155
rep1TyConKey :: Unique
rep1TyConKey = Int -> Unique
mkPreludeTyConUnique Int
156

uRecTyConKey :: Unique
uRecTyConKey    = Int -> Unique
mkPreludeTyConUnique Int
157
uAddrTyConKey :: Unique
uAddrTyConKey   = Int -> Unique
mkPreludeTyConUnique Int
158
uCharTyConKey :: Unique
uCharTyConKey   = Int -> Unique
mkPreludeTyConUnique Int
159
uDoubleTyConKey :: Unique
uDoubleTyConKey = Int -> Unique
mkPreludeTyConUnique Int
160
uFloatTyConKey :: Unique
uFloatTyConKey  = Int -> Unique
mkPreludeTyConUnique Int
161
uIntTyConKey :: Unique
uIntTyConKey    = Int -> Unique
mkPreludeTyConUnique Int
162
uWordTyConKey :: Unique
uWordTyConKey   = Int -> Unique
mkPreludeTyConUnique Int
163

-- Custom user type-errors
errorMessageTypeErrorFamKey :: Unique
errorMessageTypeErrorFamKey :: Unique
errorMessageTypeErrorFamKey =  Int -> Unique
mkPreludeTyConUnique Int
181

coercibleTyConKey :: Unique
coercibleTyConKey :: Unique
coercibleTyConKey = Int -> Unique
mkPreludeTyConUnique Int
183

proxyPrimTyConKey :: Unique
proxyPrimTyConKey :: Unique
proxyPrimTyConKey = Int -> Unique
mkPreludeTyConUnique Int
184

specTyConKey :: Unique
specTyConKey :: Unique
specTyConKey = Int -> Unique
mkPreludeTyConUnique Int
185

anyTyConKey :: Unique
anyTyConKey :: Unique
anyTyConKey = Int -> Unique
mkPreludeTyConUnique Int
186

smallArrayPrimTyConKey :: Unique
smallArrayPrimTyConKey        = Int -> Unique
mkPreludeTyConUnique  Int
187
smallMutableArrayPrimTyConKey :: Unique
smallMutableArrayPrimTyConKey = Int -> Unique
mkPreludeTyConUnique  Int
188

staticPtrTyConKey  :: Unique
staticPtrTyConKey :: Unique
staticPtrTyConKey  = Int -> Unique
mkPreludeTyConUnique Int
189

staticPtrInfoTyConKey :: Unique
staticPtrInfoTyConKey :: Unique
staticPtrInfoTyConKey = Int -> Unique
mkPreludeTyConUnique Int
190

callStackTyConKey :: Unique
callStackTyConKey :: Unique
callStackTyConKey = Int -> Unique
mkPreludeTyConUnique Int
191

-- Typeables
typeRepTyConKey, someTypeRepTyConKey, someTypeRepDataConKey :: Unique
typeRepTyConKey :: Unique
typeRepTyConKey       = Int -> Unique
mkPreludeTyConUnique Int
192
someTypeRepTyConKey :: Unique
someTypeRepTyConKey   = Int -> Unique
mkPreludeTyConUnique Int
193
someTypeRepDataConKey :: Unique
someTypeRepDataConKey = Int -> Unique
mkPreludeTyConUnique Int
194


typeSymbolAppendFamNameKey :: Unique
typeSymbolAppendFamNameKey :: Unique
typeSymbolAppendFamNameKey = Int -> Unique
mkPreludeTyConUnique Int
195

-- Unsafe equality
unsafeEqualityTyConKey :: Unique
unsafeEqualityTyConKey :: Unique
unsafeEqualityTyConKey = Int -> Unique
mkPreludeTyConUnique Int
196

-- Linear types
multiplicityTyConKey :: Unique
multiplicityTyConKey :: Unique
multiplicityTyConKey = Int -> Unique
mkPreludeTyConUnique Int
197

unrestrictedFunTyConKey :: Unique
unrestrictedFunTyConKey :: Unique
unrestrictedFunTyConKey = Int -> Unique
mkPreludeTyConUnique Int
198

multMulTyConKey :: Unique
multMulTyConKey :: Unique
multMulTyConKey = Int -> Unique
mkPreludeTyConUnique Int
199

---------------- Template Haskell -------------------
--      GHC.Builtin.Names.TH: USES TyConUniques 200-299
-----------------------------------------------------

----------------------- SIMD ------------------------
--      USES TyConUniques 300-399
-----------------------------------------------------

#include "primop-vector-uniques.hs-incl"

------------- Type-level Symbol, Nat, Char ----------
--      USES TyConUniques 400-499
-----------------------------------------------------
typeSymbolKindConNameKey, typeCharKindConNameKey,
  typeNatAddTyFamNameKey, typeNatMulTyFamNameKey, typeNatExpTyFamNameKey,
  typeNatSubTyFamNameKey
  , typeSymbolCmpTyFamNameKey, typeNatCmpTyFamNameKey, typeCharCmpTyFamNameKey
  , typeLeqCharTyFamNameKey
  , typeNatDivTyFamNameKey
  , typeNatModTyFamNameKey
  , typeNatLogTyFamNameKey
  , typeConsSymbolTyFamNameKey, typeUnconsSymbolTyFamNameKey
  , typeCharToNatTyFamNameKey, typeNatToCharTyFamNameKey
  :: Unique
typeSymbolKindConNameKey :: Unique
typeSymbolKindConNameKey  = Int -> Unique
mkPreludeTyConUnique Int
400
typeCharKindConNameKey :: Unique
typeCharKindConNameKey    = Int -> Unique
mkPreludeTyConUnique Int
401
typeNatAddTyFamNameKey :: Unique
typeNatAddTyFamNameKey    = Int -> Unique
mkPreludeTyConUnique Int
402
typeNatMulTyFamNameKey :: Unique
typeNatMulTyFamNameKey    = Int -> Unique
mkPreludeTyConUnique Int
403
typeNatExpTyFamNameKey :: Unique
typeNatExpTyFamNameKey    = Int -> Unique
mkPreludeTyConUnique Int
404
typeNatSubTyFamNameKey :: Unique
typeNatSubTyFamNameKey    = Int -> Unique
mkPreludeTyConUnique Int
405
typeSymbolCmpTyFamNameKey :: Unique
typeSymbolCmpTyFamNameKey = Int -> Unique
mkPreludeTyConUnique Int
406
typeNatCmpTyFamNameKey :: Unique
typeNatCmpTyFamNameKey    = Int -> Unique
mkPreludeTyConUnique Int
407
typeCharCmpTyFamNameKey :: Unique
typeCharCmpTyFamNameKey   = Int -> Unique
mkPreludeTyConUnique Int
408
typeLeqCharTyFamNameKey :: Unique
typeLeqCharTyFamNameKey   = Int -> Unique
mkPreludeTyConUnique Int
409
typeNatDivTyFamNameKey :: Unique
typeNatDivTyFamNameKey  = Int -> Unique
mkPreludeTyConUnique Int
410
typeNatModTyFamNameKey :: Unique
typeNatModTyFamNameKey  = Int -> Unique
mkPreludeTyConUnique Int
411
typeNatLogTyFamNameKey :: Unique
typeNatLogTyFamNameKey  = Int -> Unique
mkPreludeTyConUnique Int
412
typeConsSymbolTyFamNameKey :: Unique
typeConsSymbolTyFamNameKey = Int -> Unique
mkPreludeTyConUnique Int
413
typeUnconsSymbolTyFamNameKey :: Unique
typeUnconsSymbolTyFamNameKey = Int -> Unique
mkPreludeTyConUnique Int
414
typeCharToNatTyFamNameKey :: Unique
typeCharToNatTyFamNameKey = Int -> Unique
mkPreludeTyConUnique Int
415
typeNatToCharTyFamNameKey :: Unique
typeNatToCharTyFamNameKey = Int -> Unique
mkPreludeTyConUnique Int
416

{-
************************************************************************
*                                                                      *
\subsubsection[Uniques-prelude-DataCons]{@Uniques@ for wired-in @DataCons@}
*                                                                      *
************************************************************************
-}

charDataConKey, consDataConKey, doubleDataConKey, falseDataConKey,
    floatDataConKey, intDataConKey, nilDataConKey,
    ratioDataConKey, stableNameDataConKey, trueDataConKey, wordDataConKey,
    word8DataConKey, ioDataConKey, heqDataConKey,
    coercibleDataConKey, eqDataConKey, nothingDataConKey, justDataConKey,
    nonEmptyDataConKey :: Unique

charDataConKey :: Unique
charDataConKey                          = Int -> Unique
mkPreludeDataConUnique  Int
1
consDataConKey :: Unique
consDataConKey                          = Int -> Unique
mkPreludeDataConUnique  Int
2
doubleDataConKey :: Unique
doubleDataConKey                        = Int -> Unique
mkPreludeDataConUnique  Int
3
falseDataConKey :: Unique
falseDataConKey                         = Int -> Unique
mkPreludeDataConUnique  Int
4
floatDataConKey :: Unique
floatDataConKey                         = Int -> Unique
mkPreludeDataConUnique  Int
5
intDataConKey :: Unique
intDataConKey                           = Int -> Unique
mkPreludeDataConUnique  Int
6
nothingDataConKey :: Unique
nothingDataConKey                       = Int -> Unique
mkPreludeDataConUnique  Int
7
justDataConKey :: Unique
justDataConKey                          = Int -> Unique
mkPreludeDataConUnique  Int
8
eqDataConKey :: Unique
eqDataConKey                            = Int -> Unique
mkPreludeDataConUnique  Int
9
nilDataConKey :: Unique
nilDataConKey                           = Int -> Unique
mkPreludeDataConUnique Int
10
ratioDataConKey :: Unique
ratioDataConKey                         = Int -> Unique
mkPreludeDataConUnique Int
11
word8DataConKey :: Unique
word8DataConKey                         = Int -> Unique
mkPreludeDataConUnique Int
12
stableNameDataConKey :: Unique
stableNameDataConKey                    = Int -> Unique
mkPreludeDataConUnique Int
13
trueDataConKey :: Unique
trueDataConKey                          = Int -> Unique
mkPreludeDataConUnique Int
14
wordDataConKey :: Unique
wordDataConKey                          = Int -> Unique
mkPreludeDataConUnique Int
15
ioDataConKey :: Unique
ioDataConKey                            = Int -> Unique
mkPreludeDataConUnique Int
16
heqDataConKey :: Unique
heqDataConKey                           = Int -> Unique
mkPreludeDataConUnique Int
18
nonEmptyDataConKey :: Unique
nonEmptyDataConKey                      = Int -> Unique
mkPreludeDataConUnique Int
19

-- Generic data constructors
crossDataConKey, inlDataConKey, inrDataConKey, genUnitDataConKey :: Unique
crossDataConKey :: Unique
crossDataConKey                         = Int -> Unique
mkPreludeDataConUnique Int
20
inlDataConKey :: Unique
inlDataConKey                           = Int -> Unique
mkPreludeDataConUnique Int
21
inrDataConKey :: Unique
inrDataConKey                           = Int -> Unique
mkPreludeDataConUnique Int
22
genUnitDataConKey :: Unique
genUnitDataConKey                       = Int -> Unique
mkPreludeDataConUnique Int
23

leftDataConKey, rightDataConKey :: Unique
leftDataConKey :: Unique
leftDataConKey                          = Int -> Unique
mkPreludeDataConUnique Int
25
rightDataConKey :: Unique
rightDataConKey                         = Int -> Unique
mkPreludeDataConUnique Int
26

ordLTDataConKey, ordEQDataConKey, ordGTDataConKey :: Unique
ordLTDataConKey :: Unique
ordLTDataConKey                         = Int -> Unique
mkPreludeDataConUnique Int
27
ordEQDataConKey :: Unique
ordEQDataConKey                         = Int -> Unique
mkPreludeDataConUnique Int
28
ordGTDataConKey :: Unique
ordGTDataConKey                         = Int -> Unique
mkPreludeDataConUnique Int
29


coercibleDataConKey :: Unique
coercibleDataConKey                     = Int -> Unique
mkPreludeDataConUnique Int
32

staticPtrDataConKey :: Unique
staticPtrDataConKey :: Unique
staticPtrDataConKey                     = Int -> Unique
mkPreludeDataConUnique Int
33

staticPtrInfoDataConKey :: Unique
staticPtrInfoDataConKey :: Unique
staticPtrInfoDataConKey                 = Int -> Unique
mkPreludeDataConUnique Int
34

fingerprintDataConKey :: Unique
fingerprintDataConKey :: Unique
fingerprintDataConKey                   = Int -> Unique
mkPreludeDataConUnique Int
35

srcLocDataConKey :: Unique
srcLocDataConKey :: Unique
srcLocDataConKey                        = Int -> Unique
mkPreludeDataConUnique Int
37

trTyConDataConKey, trModuleDataConKey,
  trNameSDataConKey, trNameDDataConKey,
  trGhcPrimModuleKey :: Unique
trTyConDataConKey :: Unique
trTyConDataConKey                       = Int -> Unique
mkPreludeDataConUnique Int
41
trModuleDataConKey :: Unique
trModuleDataConKey                      = Int -> Unique
mkPreludeDataConUnique Int
43
trNameSDataConKey :: Unique
trNameSDataConKey                       = Int -> Unique
mkPreludeDataConUnique Int
45
trNameDDataConKey :: Unique
trNameDDataConKey                       = Int -> Unique
mkPreludeDataConUnique Int
46
trGhcPrimModuleKey :: Unique
trGhcPrimModuleKey                      = Int -> Unique
mkPreludeDataConUnique Int
47

typeErrorTextDataConKey,
  typeErrorAppendDataConKey,
  typeErrorVAppendDataConKey,
  typeErrorShowTypeDataConKey
  :: Unique
typeErrorTextDataConKey :: Unique
typeErrorTextDataConKey                 = Int -> Unique
mkPreludeDataConUnique Int
50
typeErrorAppendDataConKey :: Unique
typeErrorAppendDataConKey               = Int -> Unique
mkPreludeDataConUnique Int
51
typeErrorVAppendDataConKey :: Unique
typeErrorVAppendDataConKey              = Int -> Unique
mkPreludeDataConUnique Int
52
typeErrorShowTypeDataConKey :: Unique
typeErrorShowTypeDataConKey             = Int -> Unique
mkPreludeDataConUnique Int
53

prefixIDataConKey, infixIDataConKey, leftAssociativeDataConKey,
    rightAssociativeDataConKey, notAssociativeDataConKey,
    sourceUnpackDataConKey, sourceNoUnpackDataConKey,
    noSourceUnpackednessDataConKey, sourceLazyDataConKey,
    sourceStrictDataConKey, noSourceStrictnessDataConKey,
    decidedLazyDataConKey, decidedStrictDataConKey, decidedUnpackDataConKey,
    metaDataDataConKey, metaConsDataConKey, metaSelDataConKey :: Unique
prefixIDataConKey :: Unique
prefixIDataConKey                       = Int -> Unique
mkPreludeDataConUnique Int
54
infixIDataConKey :: Unique
infixIDataConKey                        = Int -> Unique
mkPreludeDataConUnique Int
55
leftAssociativeDataConKey :: Unique
leftAssociativeDataConKey               = Int -> Unique
mkPreludeDataConUnique Int
56
rightAssociativeDataConKey :: Unique
rightAssociativeDataConKey              = Int -> Unique
mkPreludeDataConUnique Int
57
notAssociativeDataConKey :: Unique
notAssociativeDataConKey                = Int -> Unique
mkPreludeDataConUnique Int
58
sourceUnpackDataConKey :: Unique
sourceUnpackDataConKey                  = Int -> Unique
mkPreludeDataConUnique Int
59
sourceNoUnpackDataConKey :: Unique
sourceNoUnpackDataConKey                = Int -> Unique
mkPreludeDataConUnique Int
60
noSourceUnpackednessDataConKey :: Unique
noSourceUnpackednessDataConKey          = Int -> Unique
mkPreludeDataConUnique Int
61
sourceLazyDataConKey :: Unique
sourceLazyDataConKey                    = Int -> Unique
mkPreludeDataConUnique Int
62
sourceStrictDataConKey :: Unique
sourceStrictDataConKey                  = Int -> Unique
mkPreludeDataConUnique Int
63
noSourceStrictnessDataConKey :: Unique
noSourceStrictnessDataConKey            = Int -> Unique
mkPreludeDataConUnique Int
64
decidedLazyDataConKey :: Unique
decidedLazyDataConKey                   = Int -> Unique
mkPreludeDataConUnique Int
65
decidedStrictDataConKey :: Unique
decidedStrictDataConKey                 = Int -> Unique
mkPreludeDataConUnique Int
66
decidedUnpackDataConKey :: Unique
decidedUnpackDataConKey                 = Int -> Unique
mkPreludeDataConUnique Int
67
metaDataDataConKey :: Unique
metaDataDataConKey                      = Int -> Unique
mkPreludeDataConUnique Int
68
metaConsDataConKey :: Unique
metaConsDataConKey                      = Int -> Unique
mkPreludeDataConUnique Int
69
metaSelDataConKey :: Unique
metaSelDataConKey                       = Int -> Unique
mkPreludeDataConUnique Int
70

vecRepDataConKey, sumRepDataConKey,
  tupleRepDataConKey, boxedRepDataConKey :: Unique
vecRepDataConKey :: Unique
vecRepDataConKey                        = Int -> Unique
mkPreludeDataConUnique Int
71
tupleRepDataConKey :: Unique
tupleRepDataConKey                      = Int -> Unique
mkPreludeDataConUnique Int
72
sumRepDataConKey :: Unique
sumRepDataConKey                        = Int -> Unique
mkPreludeDataConUnique Int
73
boxedRepDataConKey :: Unique
boxedRepDataConKey                      = Int -> Unique
mkPreludeDataConUnique Int
74

boxedRepDataConTyConKey, tupleRepDataConTyConKey :: Unique
-- A promoted data constructors (i.e. a TyCon) has
-- the same key as the data constructor itself
boxedRepDataConTyConKey :: Unique
boxedRepDataConTyConKey = Unique
boxedRepDataConKey
tupleRepDataConTyConKey :: Unique
tupleRepDataConTyConKey = Unique
tupleRepDataConKey

-- See Note [Wiring in RuntimeRep] in GHC.Builtin.Types
-- Includes all nullary-data-constructor reps. Does not
-- include BoxedRep, VecRep, SumRep, TupleRep.
runtimeRepSimpleDataConKeys :: [Unique]
runtimeRepSimpleDataConKeys :: [Unique]
runtimeRepSimpleDataConKeys
  = forall a b. (a -> b) -> [a] -> [b]
map Int -> Unique
mkPreludeDataConUnique [Int
75..Int
87]

liftedDataConKey,unliftedDataConKey :: Unique
liftedDataConKey :: Unique
liftedDataConKey = Int -> Unique
mkPreludeDataConUnique Int
88
unliftedDataConKey :: Unique
unliftedDataConKey = Int -> Unique
mkPreludeDataConUnique Int
89

-- See Note [Wiring in RuntimeRep] in GHC.Builtin.Types
-- VecCount
vecCountDataConKeys :: [Unique]
vecCountDataConKeys :: [Unique]
vecCountDataConKeys = forall a b. (a -> b) -> [a] -> [b]
map Int -> Unique
mkPreludeDataConUnique [Int
90..Int
95]

-- See Note [Wiring in RuntimeRep] in GHC.Builtin.Types
-- VecElem
vecElemDataConKeys :: [Unique]
vecElemDataConKeys :: [Unique]
vecElemDataConKeys = forall a b. (a -> b) -> [a] -> [b]
map Int -> Unique
mkPreludeDataConUnique [Int
96..Int
105]

-- Typeable things
kindRepTyConAppDataConKey, kindRepVarDataConKey, kindRepAppDataConKey,
    kindRepFunDataConKey, kindRepTYPEDataConKey,
    kindRepTypeLitSDataConKey, kindRepTypeLitDDataConKey
    :: Unique
kindRepTyConAppDataConKey :: Unique
kindRepTyConAppDataConKey = Int -> Unique
mkPreludeDataConUnique Int
106
kindRepVarDataConKey :: Unique
kindRepVarDataConKey      = Int -> Unique
mkPreludeDataConUnique Int
107
kindRepAppDataConKey :: Unique
kindRepAppDataConKey      = Int -> Unique
mkPreludeDataConUnique Int
108
kindRepFunDataConKey :: Unique
kindRepFunDataConKey      = Int -> Unique
mkPreludeDataConUnique Int
109
kindRepTYPEDataConKey :: Unique
kindRepTYPEDataConKey     = Int -> Unique
mkPreludeDataConUnique Int
110
kindRepTypeLitSDataConKey :: Unique
kindRepTypeLitSDataConKey = Int -> Unique
mkPreludeDataConUnique Int
111
kindRepTypeLitDDataConKey :: Unique
kindRepTypeLitDDataConKey = Int -> Unique
mkPreludeDataConUnique Int
112

typeLitSymbolDataConKey, typeLitNatDataConKey, typeLitCharDataConKey :: Unique
typeLitSymbolDataConKey :: Unique
typeLitSymbolDataConKey   = Int -> Unique
mkPreludeDataConUnique Int
113
typeLitNatDataConKey :: Unique
typeLitNatDataConKey      = Int -> Unique
mkPreludeDataConUnique Int
114
typeLitCharDataConKey :: Unique
typeLitCharDataConKey     = Int -> Unique
mkPreludeDataConUnique Int
115

-- Unsafe equality
unsafeReflDataConKey :: Unique
unsafeReflDataConKey :: Unique
unsafeReflDataConKey      = Int -> Unique
mkPreludeDataConUnique Int
116

-- Multiplicity

oneDataConKey, manyDataConKey :: Unique
oneDataConKey :: Unique
oneDataConKey = Int -> Unique
mkPreludeDataConUnique Int
117
manyDataConKey :: Unique
manyDataConKey = Int -> Unique
mkPreludeDataConUnique Int
118

-- ghc-bignum
integerISDataConKey, integerINDataConKey, integerIPDataConKey,
   naturalNSDataConKey, naturalNBDataConKey :: Unique
integerISDataConKey :: Unique
integerISDataConKey       = Int -> Unique
mkPreludeDataConUnique Int
120
integerINDataConKey :: Unique
integerINDataConKey       = Int -> Unique
mkPreludeDataConUnique Int
121
integerIPDataConKey :: Unique
integerIPDataConKey       = Int -> Unique
mkPreludeDataConUnique Int
122
naturalNSDataConKey :: Unique
naturalNSDataConKey       = Int -> Unique
mkPreludeDataConUnique Int
123
naturalNBDataConKey :: Unique
naturalNBDataConKey       = Int -> Unique
mkPreludeDataConUnique Int
124


---------------- Template Haskell -------------------
--      GHC.Builtin.Names.TH: USES DataUniques 200-250
-----------------------------------------------------


{-
************************************************************************
*                                                                      *
\subsubsection[Uniques-prelude-Ids]{@Uniques@ for wired-in @Ids@ (except @DataCons@)}
*                                                                      *
************************************************************************
-}

wildCardKey, absentErrorIdKey, augmentIdKey, appendIdKey,
    buildIdKey, foldrIdKey, recSelErrorIdKey,
    seqIdKey, eqStringIdKey,
    noMethodBindingErrorIdKey, nonExhaustiveGuardsErrorIdKey,
    runtimeErrorIdKey, patErrorIdKey, voidPrimIdKey,
    realWorldPrimIdKey, recConErrorIdKey,
    unpackCStringUtf8IdKey, unpackCStringAppendUtf8IdKey, unpackCStringFoldrUtf8IdKey,
    unpackCStringIdKey, unpackCStringAppendIdKey, unpackCStringFoldrIdKey,
    typeErrorIdKey, divIntIdKey, modIntIdKey,
    absentSumFieldErrorIdKey, cstringLengthIdKey
    :: Unique

wildCardKey :: Unique
wildCardKey                   = Int -> Unique
mkPreludeMiscIdUnique  Int
0  -- See Note [WildCard binders]
absentErrorIdKey :: Unique
absentErrorIdKey              = Int -> Unique
mkPreludeMiscIdUnique  Int
1
augmentIdKey :: Unique
augmentIdKey                  = Int -> Unique
mkPreludeMiscIdUnique  Int
2
appendIdKey :: Unique
appendIdKey                   = Int -> Unique
mkPreludeMiscIdUnique  Int
3
buildIdKey :: Unique
buildIdKey                    = Int -> Unique
mkPreludeMiscIdUnique  Int
4
foldrIdKey :: Unique
foldrIdKey                    = Int -> Unique
mkPreludeMiscIdUnique  Int
6
recSelErrorIdKey :: Unique
recSelErrorIdKey              = Int -> Unique
mkPreludeMiscIdUnique  Int
7
seqIdKey :: Unique
seqIdKey                      = Int -> Unique
mkPreludeMiscIdUnique  Int
8
absentSumFieldErrorIdKey :: Unique
absentSumFieldErrorIdKey      = Int -> Unique
mkPreludeMiscIdUnique  Int
9
eqStringIdKey :: Unique
eqStringIdKey                 = Int -> Unique
mkPreludeMiscIdUnique Int
10
noMethodBindingErrorIdKey :: Unique
noMethodBindingErrorIdKey     = Int -> Unique
mkPreludeMiscIdUnique Int
11
nonExhaustiveGuardsErrorIdKey :: Unique
nonExhaustiveGuardsErrorIdKey = Int -> Unique
mkPreludeMiscIdUnique Int
12
runtimeErrorIdKey :: Unique
runtimeErrorIdKey             = Int -> Unique
mkPreludeMiscIdUnique Int
13
patErrorIdKey :: Unique
patErrorIdKey                 = Int -> Unique
mkPreludeMiscIdUnique Int
14
realWorldPrimIdKey :: Unique
realWorldPrimIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
15
recConErrorIdKey :: Unique
recConErrorIdKey              = Int -> Unique
mkPreludeMiscIdUnique Int
16

unpackCStringUtf8IdKey :: Unique
unpackCStringUtf8IdKey        = Int -> Unique
mkPreludeMiscIdUnique Int
17
unpackCStringAppendUtf8IdKey :: Unique
unpackCStringAppendUtf8IdKey  = Int -> Unique
mkPreludeMiscIdUnique Int
18
unpackCStringFoldrUtf8IdKey :: Unique
unpackCStringFoldrUtf8IdKey   = Int -> Unique
mkPreludeMiscIdUnique Int
19

unpackCStringIdKey :: Unique
unpackCStringIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
20
unpackCStringAppendIdKey :: Unique
unpackCStringAppendIdKey      = Int -> Unique
mkPreludeMiscIdUnique Int
21
unpackCStringFoldrIdKey :: Unique
unpackCStringFoldrIdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
22

voidPrimIdKey :: Unique
voidPrimIdKey                 = Int -> Unique
mkPreludeMiscIdUnique Int
23
typeErrorIdKey :: Unique
typeErrorIdKey                = Int -> Unique
mkPreludeMiscIdUnique Int
24
divIntIdKey :: Unique
divIntIdKey                   = Int -> Unique
mkPreludeMiscIdUnique Int
25
modIntIdKey :: Unique
modIntIdKey                   = Int -> Unique
mkPreludeMiscIdUnique Int
26
cstringLengthIdKey :: Unique
cstringLengthIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
27

concatIdKey, filterIdKey, zipIdKey,
    bindIOIdKey, returnIOIdKey, newStablePtrIdKey,
    printIdKey, failIOIdKey, nullAddrIdKey, voidArgIdKey,
    otherwiseIdKey, assertIdKey :: Unique
concatIdKey :: Unique
concatIdKey                   = Int -> Unique
mkPreludeMiscIdUnique Int
31
filterIdKey :: Unique
filterIdKey                   = Int -> Unique
mkPreludeMiscIdUnique Int
32
zipIdKey :: Unique
zipIdKey                      = Int -> Unique
mkPreludeMiscIdUnique Int
33
bindIOIdKey :: Unique
bindIOIdKey                   = Int -> Unique
mkPreludeMiscIdUnique Int
34
returnIOIdKey :: Unique
returnIOIdKey                 = Int -> Unique
mkPreludeMiscIdUnique Int
35
newStablePtrIdKey :: Unique
newStablePtrIdKey             = Int -> Unique
mkPreludeMiscIdUnique Int
36
printIdKey :: Unique
printIdKey                    = Int -> Unique
mkPreludeMiscIdUnique Int
37
failIOIdKey :: Unique
failIOIdKey                   = Int -> Unique
mkPreludeMiscIdUnique Int
38
nullAddrIdKey :: Unique
nullAddrIdKey                 = Int -> Unique
mkPreludeMiscIdUnique Int
39
voidArgIdKey :: Unique
voidArgIdKey                  = Int -> Unique
mkPreludeMiscIdUnique Int
40
otherwiseIdKey :: Unique
otherwiseIdKey                = Int -> Unique
mkPreludeMiscIdUnique Int
43
assertIdKey :: Unique
assertIdKey                   = Int -> Unique
mkPreludeMiscIdUnique Int
44

leftSectionKey, rightSectionKey :: Unique
leftSectionKey :: Unique
leftSectionKey                = Int -> Unique
mkPreludeMiscIdUnique Int
45
rightSectionKey :: Unique
rightSectionKey               = Int -> Unique
mkPreludeMiscIdUnique Int
46

rootMainKey, runMainKey :: Unique
rootMainKey :: Unique
rootMainKey                   = Int -> Unique
mkPreludeMiscIdUnique Int
101
runMainKey :: Unique
runMainKey                    = Int -> Unique
mkPreludeMiscIdUnique Int
102

thenIOIdKey, lazyIdKey, assertErrorIdKey, oneShotKey, runRWKey :: Unique
thenIOIdKey :: Unique
thenIOIdKey                   = Int -> Unique
mkPreludeMiscIdUnique Int
103
lazyIdKey :: Unique
lazyIdKey                     = Int -> Unique
mkPreludeMiscIdUnique Int
104
assertErrorIdKey :: Unique
assertErrorIdKey              = Int -> Unique
mkPreludeMiscIdUnique Int
105
oneShotKey :: Unique
oneShotKey                    = Int -> Unique
mkPreludeMiscIdUnique Int
106
runRWKey :: Unique
runRWKey                      = Int -> Unique
mkPreludeMiscIdUnique Int
107

traceKey :: Unique
traceKey :: Unique
traceKey                      = Int -> Unique
mkPreludeMiscIdUnique Int
108

nospecIdKey :: Unique
nospecIdKey :: Unique
nospecIdKey                   = Int -> Unique
mkPreludeMiscIdUnique Int
109

inlineIdKey, noinlineIdKey :: Unique
inlineIdKey :: Unique
inlineIdKey                   = Int -> Unique
mkPreludeMiscIdUnique Int
120
-- see below

mapIdKey, dollarIdKey, coercionTokenIdKey, considerAccessibleIdKey :: Unique
mapIdKey :: Unique
mapIdKey                = Int -> Unique
mkPreludeMiscIdUnique Int
121
dollarIdKey :: Unique
dollarIdKey             = Int -> Unique
mkPreludeMiscIdUnique Int
123
coercionTokenIdKey :: Unique
coercionTokenIdKey      = Int -> Unique
mkPreludeMiscIdUnique Int
124
noinlineIdKey :: Unique
noinlineIdKey           = Int -> Unique
mkPreludeMiscIdUnique Int
125
considerAccessibleIdKey :: Unique
considerAccessibleIdKey = Int -> Unique
mkPreludeMiscIdUnique Int
126

integerToFloatIdKey, integerToDoubleIdKey, naturalToFloatIdKey, naturalToDoubleIdKey :: Unique
integerToFloatIdKey :: Unique
integerToFloatIdKey    = Int -> Unique
mkPreludeMiscIdUnique Int
128
integerToDoubleIdKey :: Unique
integerToDoubleIdKey   = Int -> Unique
mkPreludeMiscIdUnique Int
129
naturalToFloatIdKey :: Unique
naturalToFloatIdKey    = Int -> Unique
mkPreludeMiscIdUnique Int
130
naturalToDoubleIdKey :: Unique
naturalToDoubleIdKey   = Int -> Unique
mkPreludeMiscIdUnique Int
131

rationalToFloatIdKey, rationalToDoubleIdKey :: Unique
rationalToFloatIdKey :: Unique
rationalToFloatIdKey   = Int -> Unique
mkPreludeMiscIdUnique Int
132
rationalToDoubleIdKey :: Unique
rationalToDoubleIdKey  = Int -> Unique
mkPreludeMiscIdUnique Int
133

coerceKey :: Unique
coerceKey :: Unique
coerceKey                     = Int -> Unique
mkPreludeMiscIdUnique Int
157

{-
Certain class operations from Prelude classes.  They get their own
uniques so we can look them up easily when we want to conjure them up
during type checking.
-}

-- Just a placeholder for unbound variables produced by the renamer:
unboundKey :: Unique
unboundKey :: Unique
unboundKey                    = Int -> Unique
mkPreludeMiscIdUnique Int
158

fromIntegerClassOpKey, minusClassOpKey, fromRationalClassOpKey,
    enumFromClassOpKey, enumFromThenClassOpKey, enumFromToClassOpKey,
    enumFromThenToClassOpKey, eqClassOpKey, geClassOpKey, negateClassOpKey,
    bindMClassOpKey, thenMClassOpKey, returnMClassOpKey, fmapClassOpKey
    :: Unique
fromIntegerClassOpKey :: Unique
fromIntegerClassOpKey         = Int -> Unique
mkPreludeMiscIdUnique Int
160
minusClassOpKey :: Unique
minusClassOpKey               = Int -> Unique
mkPreludeMiscIdUnique Int
161
fromRationalClassOpKey :: Unique
fromRationalClassOpKey        = Int -> Unique
mkPreludeMiscIdUnique Int
162
enumFromClassOpKey :: Unique
enumFromClassOpKey            = Int -> Unique
mkPreludeMiscIdUnique Int
163
enumFromThenClassOpKey :: Unique
enumFromThenClassOpKey        = Int -> Unique
mkPreludeMiscIdUnique Int
164
enumFromToClassOpKey :: Unique
enumFromToClassOpKey          = Int -> Unique
mkPreludeMiscIdUnique Int
165
enumFromThenToClassOpKey :: Unique
enumFromThenToClassOpKey      = Int -> Unique
mkPreludeMiscIdUnique Int
166
eqClassOpKey :: Unique
eqClassOpKey                  = Int -> Unique
mkPreludeMiscIdUnique Int
167
geClassOpKey :: Unique
geClassOpKey                  = Int -> Unique
mkPreludeMiscIdUnique Int
168
negateClassOpKey :: Unique
negateClassOpKey              = Int -> Unique
mkPreludeMiscIdUnique Int
169
bindMClassOpKey :: Unique
bindMClassOpKey               = Int -> Unique
mkPreludeMiscIdUnique Int
171 -- (>>=)
thenMClassOpKey :: Unique
thenMClassOpKey               = Int -> Unique
mkPreludeMiscIdUnique Int
172 -- (>>)
fmapClassOpKey :: Unique
fmapClassOpKey                = Int -> Unique
mkPreludeMiscIdUnique Int
173
returnMClassOpKey :: Unique
returnMClassOpKey             = Int -> Unique
mkPreludeMiscIdUnique Int
174

-- Recursive do notation
mfixIdKey :: Unique
mfixIdKey :: Unique
mfixIdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
175

-- MonadFail operations
failMClassOpKey :: Unique
failMClassOpKey :: Unique
failMClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
176

-- fromLabel
fromLabelClassOpKey :: Unique
fromLabelClassOpKey :: Unique
fromLabelClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
177

-- Arrow notation
arrAIdKey, composeAIdKey, firstAIdKey, appAIdKey, choiceAIdKey,
    loopAIdKey :: Unique
arrAIdKey :: Unique
arrAIdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
180
composeAIdKey :: Unique
composeAIdKey   = Int -> Unique
mkPreludeMiscIdUnique Int
181 -- >>>
firstAIdKey :: Unique
firstAIdKey     = Int -> Unique
mkPreludeMiscIdUnique Int
182
appAIdKey :: Unique
appAIdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
183
choiceAIdKey :: Unique
choiceAIdKey    = Int -> Unique
mkPreludeMiscIdUnique Int
184 --  |||
loopAIdKey :: Unique
loopAIdKey      = Int -> Unique
mkPreludeMiscIdUnique Int
185

fromStringClassOpKey :: Unique
fromStringClassOpKey :: Unique
fromStringClassOpKey          = Int -> Unique
mkPreludeMiscIdUnique Int
186

-- Annotation type checking
toAnnotationWrapperIdKey :: Unique
toAnnotationWrapperIdKey :: Unique
toAnnotationWrapperIdKey      = Int -> Unique
mkPreludeMiscIdUnique Int
187

-- Conversion functions
fromIntegralIdKey, realToFracIdKey, toIntegerClassOpKey, toRationalClassOpKey :: Unique
fromIntegralIdKey :: Unique
fromIntegralIdKey    = Int -> Unique
mkPreludeMiscIdUnique Int
190
realToFracIdKey :: Unique
realToFracIdKey      = Int -> Unique
mkPreludeMiscIdUnique Int
191
toIntegerClassOpKey :: Unique
toIntegerClassOpKey  = Int -> Unique
mkPreludeMiscIdUnique Int
192
toRationalClassOpKey :: Unique
toRationalClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
193

-- Monad comprehensions
guardMIdKey, liftMIdKey, mzipIdKey :: Unique
guardMIdKey :: Unique
guardMIdKey     = Int -> Unique
mkPreludeMiscIdUnique Int
194
liftMIdKey :: Unique
liftMIdKey      = Int -> Unique
mkPreludeMiscIdUnique Int
195
mzipIdKey :: Unique
mzipIdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
196

-- GHCi
ghciStepIoMClassOpKey :: Unique
ghciStepIoMClassOpKey :: Unique
ghciStepIoMClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
197

-- Overloaded lists
isListClassKey, fromListClassOpKey, fromListNClassOpKey, toListClassOpKey :: Unique
isListClassKey :: Unique
isListClassKey = Int -> Unique
mkPreludeMiscIdUnique Int
198
fromListClassOpKey :: Unique
fromListClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
199
fromListNClassOpKey :: Unique
fromListNClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
500
toListClassOpKey :: Unique
toListClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
501

proxyHashKey :: Unique
proxyHashKey :: Unique
proxyHashKey = Int -> Unique
mkPreludeMiscIdUnique Int
502

---------------- Template Haskell -------------------
--      GHC.Builtin.Names.TH: USES IdUniques 200-499
-----------------------------------------------------

-- Used to make `Typeable` dictionaries
mkTyConKey
  , mkTrTypeKey
  , mkTrConKey
  , mkTrAppKey
  , mkTrFunKey
  , typeNatTypeRepKey
  , typeSymbolTypeRepKey
  , typeCharTypeRepKey
  , typeRepIdKey
  :: Unique
mkTyConKey :: Unique
mkTyConKey            = Int -> Unique
mkPreludeMiscIdUnique Int
503
mkTrTypeKey :: Unique
mkTrTypeKey           = Int -> Unique
mkPreludeMiscIdUnique Int
504
mkTrConKey :: Unique
mkTrConKey            = Int -> Unique
mkPreludeMiscIdUnique Int
505
mkTrAppKey :: Unique
mkTrAppKey            = Int -> Unique
mkPreludeMiscIdUnique Int
506
typeNatTypeRepKey :: Unique
typeNatTypeRepKey     = Int -> Unique
mkPreludeMiscIdUnique Int
507
typeSymbolTypeRepKey :: Unique
typeSymbolTypeRepKey  = Int -> Unique
mkPreludeMiscIdUnique Int
508
typeCharTypeRepKey :: Unique
typeCharTypeRepKey    = Int -> Unique
mkPreludeMiscIdUnique Int
509
typeRepIdKey :: Unique
typeRepIdKey          = Int -> Unique
mkPreludeMiscIdUnique Int
510
mkTrFunKey :: Unique
mkTrFunKey            = Int -> Unique
mkPreludeMiscIdUnique Int
511

-- Representations for primitive types
trTYPEKey
  , trTYPE'PtrRepLiftedKey
  , trRuntimeRepKey
  , tr'PtrRepLiftedKey
  , trLiftedRepKey
  :: Unique
trTYPEKey :: Unique
trTYPEKey              = Int -> Unique
mkPreludeMiscIdUnique Int
512
trTYPE'PtrRepLiftedKey :: Unique
trTYPE'PtrRepLiftedKey = Int -> Unique
mkPreludeMiscIdUnique Int
513
trRuntimeRepKey :: Unique
trRuntimeRepKey        = Int -> Unique
mkPreludeMiscIdUnique Int
514
tr'PtrRepLiftedKey :: Unique
tr'PtrRepLiftedKey     = Int -> Unique
mkPreludeMiscIdUnique Int
515
trLiftedRepKey :: Unique
trLiftedRepKey         = Int -> Unique
mkPreludeMiscIdUnique Int
516

-- KindReps for common cases
starKindRepKey, starArrStarKindRepKey, starArrStarArrStarKindRepKey :: Unique
starKindRepKey :: Unique
starKindRepKey        = Int -> Unique
mkPreludeMiscIdUnique Int
520
starArrStarKindRepKey :: Unique
starArrStarKindRepKey = Int -> Unique
mkPreludeMiscIdUnique Int
521
starArrStarArrStarKindRepKey :: Unique
starArrStarArrStarKindRepKey = Int -> Unique
mkPreludeMiscIdUnique Int
522

-- Dynamic
toDynIdKey :: Unique
toDynIdKey :: Unique
toDynIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
523


bitIntegerIdKey :: Unique
bitIntegerIdKey :: Unique
bitIntegerIdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
550

heqSCSelIdKey, eqSCSelIdKey, coercibleSCSelIdKey :: Unique
eqSCSelIdKey :: Unique
eqSCSelIdKey        = Int -> Unique
mkPreludeMiscIdUnique Int
551
heqSCSelIdKey :: Unique
heqSCSelIdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
552
coercibleSCSelIdKey :: Unique
coercibleSCSelIdKey = Int -> Unique
mkPreludeMiscIdUnique Int
553

sappendClassOpKey :: Unique
sappendClassOpKey :: Unique
sappendClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
554

memptyClassOpKey, mappendClassOpKey, mconcatClassOpKey :: Unique
memptyClassOpKey :: Unique
memptyClassOpKey  = Int -> Unique
mkPreludeMiscIdUnique Int
555
mappendClassOpKey :: Unique
mappendClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
556
mconcatClassOpKey :: Unique
mconcatClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
557

emptyCallStackKey, pushCallStackKey :: Unique
emptyCallStackKey :: Unique
emptyCallStackKey = Int -> Unique
mkPreludeMiscIdUnique Int
558
pushCallStackKey :: Unique
pushCallStackKey  = Int -> Unique
mkPreludeMiscIdUnique Int
559

fromStaticPtrClassOpKey :: Unique
fromStaticPtrClassOpKey :: Unique
fromStaticPtrClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
560

makeStaticKey :: Unique
makeStaticKey :: Unique
makeStaticKey = Int -> Unique
mkPreludeMiscIdUnique Int
561

-- Unsafe coercion proofs
unsafeEqualityProofIdKey, unsafeCoercePrimIdKey :: Unique
unsafeEqualityProofIdKey :: Unique
unsafeEqualityProofIdKey = Int -> Unique
mkPreludeMiscIdUnique Int
570
unsafeCoercePrimIdKey :: Unique
unsafeCoercePrimIdKey    = Int -> Unique
mkPreludeMiscIdUnique Int
571

-- HasField class ops
getFieldClassOpKey, setFieldClassOpKey :: Unique
getFieldClassOpKey :: Unique
getFieldClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
572
setFieldClassOpKey :: Unique
setFieldClassOpKey = Int -> Unique
mkPreludeMiscIdUnique Int
573

------------------------------------------------------
-- ghc-bignum uses 600-699 uniques
------------------------------------------------------

integerFromNaturalIdKey
   , integerToNaturalClampIdKey
   , integerToNaturalThrowIdKey
   , integerToNaturalIdKey
   , integerToWordIdKey
   , integerToIntIdKey
   , integerToWord64IdKey
   , integerToInt64IdKey
   , integerAddIdKey
   , integerMulIdKey
   , integerSubIdKey
   , integerNegateIdKey
   , integerAbsIdKey
   , integerPopCountIdKey
   , integerQuotIdKey
   , integerRemIdKey
   , integerDivIdKey
   , integerModIdKey
   , integerDivModIdKey
   , integerQuotRemIdKey
   , integerEncodeFloatIdKey
   , integerEncodeDoubleIdKey
   , integerGcdIdKey
   , integerLcmIdKey
   , integerAndIdKey
   , integerOrIdKey
   , integerXorIdKey
   , integerComplementIdKey
   , integerBitIdKey
   , integerTestBitIdKey
   , integerShiftLIdKey
   , integerShiftRIdKey
   , integerFromWordIdKey
   , integerFromWord64IdKey
   , integerFromInt64IdKey
   , naturalToWordIdKey
   , naturalPopCountIdKey
   , naturalShiftRIdKey
   , naturalShiftLIdKey
   , naturalAddIdKey
   , naturalSubIdKey
   , naturalSubThrowIdKey
   , naturalSubUnsafeIdKey
   , naturalMulIdKey
   , naturalQuotRemIdKey
   , naturalQuotIdKey
   , naturalRemIdKey
   , naturalAndIdKey
   , naturalAndNotIdKey
   , naturalOrIdKey
   , naturalXorIdKey
   , naturalTestBitIdKey
   , naturalBitIdKey
   , naturalGcdIdKey
   , naturalLcmIdKey
   , naturalLog2IdKey
   , naturalLogBaseWordIdKey
   , naturalLogBaseIdKey
   , naturalPowModIdKey
   , naturalSizeInBaseIdKey
   , bignatFromWordListIdKey
   , bignatEqIdKey
   , bignatCompareIdKey
   , bignatCompareWordIdKey
   :: Unique

integerFromNaturalIdKey :: Unique
integerFromNaturalIdKey    = Int -> Unique
mkPreludeMiscIdUnique Int
600
integerToNaturalClampIdKey :: Unique
integerToNaturalClampIdKey = Int -> Unique
mkPreludeMiscIdUnique Int
601
integerToNaturalThrowIdKey :: Unique
integerToNaturalThrowIdKey = Int -> Unique
mkPreludeMiscIdUnique Int
602
integerToNaturalIdKey :: Unique
integerToNaturalIdKey      = Int -> Unique
mkPreludeMiscIdUnique Int
603
integerToWordIdKey :: Unique
integerToWordIdKey         = Int -> Unique
mkPreludeMiscIdUnique Int
604
integerToIntIdKey :: Unique
integerToIntIdKey          = Int -> Unique
mkPreludeMiscIdUnique Int
605
integerToWord64IdKey :: Unique
integerToWord64IdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
606
integerToInt64IdKey :: Unique
integerToInt64IdKey        = Int -> Unique
mkPreludeMiscIdUnique Int
607
integerAddIdKey :: Unique
integerAddIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
608
integerMulIdKey :: Unique
integerMulIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
609
integerSubIdKey :: Unique
integerSubIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
610
integerNegateIdKey :: Unique
integerNegateIdKey         = Int -> Unique
mkPreludeMiscIdUnique Int
611
integerAbsIdKey :: Unique
integerAbsIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
618
integerPopCountIdKey :: Unique
integerPopCountIdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
621
integerQuotIdKey :: Unique
integerQuotIdKey           = Int -> Unique
mkPreludeMiscIdUnique Int
622
integerRemIdKey :: Unique
integerRemIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
623
integerDivIdKey :: Unique
integerDivIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
624
integerModIdKey :: Unique
integerModIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
625
integerDivModIdKey :: Unique
integerDivModIdKey         = Int -> Unique
mkPreludeMiscIdUnique Int
626
integerQuotRemIdKey :: Unique
integerQuotRemIdKey        = Int -> Unique
mkPreludeMiscIdUnique Int
627
integerEncodeFloatIdKey :: Unique
integerEncodeFloatIdKey    = Int -> Unique
mkPreludeMiscIdUnique Int
630
integerEncodeDoubleIdKey :: Unique
integerEncodeDoubleIdKey   = Int -> Unique
mkPreludeMiscIdUnique Int
631
integerGcdIdKey :: Unique
integerGcdIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
632
integerLcmIdKey :: Unique
integerLcmIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
633
integerAndIdKey :: Unique
integerAndIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
634
integerOrIdKey :: Unique
integerOrIdKey             = Int -> Unique
mkPreludeMiscIdUnique Int
635
integerXorIdKey :: Unique
integerXorIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
636
integerComplementIdKey :: Unique
integerComplementIdKey     = Int -> Unique
mkPreludeMiscIdUnique Int
637
integerBitIdKey :: Unique
integerBitIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
638
integerTestBitIdKey :: Unique
integerTestBitIdKey        = Int -> Unique
mkPreludeMiscIdUnique Int
639
integerShiftLIdKey :: Unique
integerShiftLIdKey         = Int -> Unique
mkPreludeMiscIdUnique Int
640
integerShiftRIdKey :: Unique
integerShiftRIdKey         = Int -> Unique
mkPreludeMiscIdUnique Int
641
integerFromWordIdKey :: Unique
integerFromWordIdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
642
integerFromWord64IdKey :: Unique
integerFromWord64IdKey     = Int -> Unique
mkPreludeMiscIdUnique Int
643
integerFromInt64IdKey :: Unique
integerFromInt64IdKey      = Int -> Unique
mkPreludeMiscIdUnique Int
644

naturalToWordIdKey :: Unique
naturalToWordIdKey         = Int -> Unique
mkPreludeMiscIdUnique Int
650
naturalPopCountIdKey :: Unique
naturalPopCountIdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
659
naturalShiftRIdKey :: Unique
naturalShiftRIdKey         = Int -> Unique
mkPreludeMiscIdUnique Int
660
naturalShiftLIdKey :: Unique
naturalShiftLIdKey         = Int -> Unique
mkPreludeMiscIdUnique Int
661
naturalAddIdKey :: Unique
naturalAddIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
662
naturalSubIdKey :: Unique
naturalSubIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
663
naturalSubThrowIdKey :: Unique
naturalSubThrowIdKey       = Int -> Unique
mkPreludeMiscIdUnique Int
664
naturalSubUnsafeIdKey :: Unique
naturalSubUnsafeIdKey      = Int -> Unique
mkPreludeMiscIdUnique Int
665
naturalMulIdKey :: Unique
naturalMulIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
666
naturalQuotRemIdKey :: Unique
naturalQuotRemIdKey        = Int -> Unique
mkPreludeMiscIdUnique Int
669
naturalQuotIdKey :: Unique
naturalQuotIdKey           = Int -> Unique
mkPreludeMiscIdUnique Int
670
naturalRemIdKey :: Unique
naturalRemIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
671
naturalAndIdKey :: Unique
naturalAndIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
672
naturalAndNotIdKey :: Unique
naturalAndNotIdKey         = Int -> Unique
mkPreludeMiscIdUnique Int
673
naturalOrIdKey :: Unique
naturalOrIdKey             = Int -> Unique
mkPreludeMiscIdUnique Int
674
naturalXorIdKey :: Unique
naturalXorIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
675
naturalTestBitIdKey :: Unique
naturalTestBitIdKey        = Int -> Unique
mkPreludeMiscIdUnique Int
676
naturalBitIdKey :: Unique
naturalBitIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
677
naturalGcdIdKey :: Unique
naturalGcdIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
678
naturalLcmIdKey :: Unique
naturalLcmIdKey            = Int -> Unique
mkPreludeMiscIdUnique Int
679
naturalLog2IdKey :: Unique
naturalLog2IdKey           = Int -> Unique
mkPreludeMiscIdUnique Int
680
naturalLogBaseWordIdKey :: Unique
naturalLogBaseWordIdKey    = Int -> Unique
mkPreludeMiscIdUnique Int
681
naturalLogBaseIdKey :: Unique
naturalLogBaseIdKey        = Int -> Unique
mkPreludeMiscIdUnique Int
682
naturalPowModIdKey :: Unique
naturalPowModIdKey         = Int -> Unique
mkPreludeMiscIdUnique Int
683
naturalSizeInBaseIdKey :: Unique
naturalSizeInBaseIdKey     = Int -> Unique
mkPreludeMiscIdUnique Int
684

bignatFromWordListIdKey :: Unique
bignatFromWordListIdKey    = Int -> Unique
mkPreludeMiscIdUnique Int
690
bignatEqIdKey :: Unique
bignatEqIdKey              = Int -> Unique
mkPreludeMiscIdUnique Int
691
bignatCompareIdKey :: Unique
bignatCompareIdKey         = Int -> Unique
mkPreludeMiscIdUnique Int
692
bignatCompareWordIdKey :: Unique
bignatCompareWordIdKey     = Int -> Unique
mkPreludeMiscIdUnique Int
693


------------------------------------------------------
-- ghci optimization for big rationals 700-749 uniques
------------------------------------------------------

-- Creating rationals at runtime.
mkRationalBase2IdKey, mkRationalBase10IdKey :: Unique
mkRationalBase2IdKey :: Unique
mkRationalBase2IdKey  = Int -> Unique
mkPreludeMiscIdUnique Int
700
mkRationalBase10IdKey :: Unique
mkRationalBase10IdKey = Int -> Unique
mkPreludeMiscIdUnique Int
701 :: Unique

{-
************************************************************************
*                                                                      *
\subsection[Class-std-groups]{Standard groups of Prelude classes}
*                                                                      *
************************************************************************

NOTE: @Eq@ and @Text@ do need to appear in @standardClasses@
even though every numeric class has these two as a superclass,
because the list of ambiguous dictionaries hasn't been simplified.
-}

numericClassKeys :: [Unique]
numericClassKeys :: [Unique]
numericClassKeys =
        [ Unique
numClassKey
        , Unique
realClassKey
        , Unique
integralClassKey
        ]
        forall a. [a] -> [a] -> [a]
++ [Unique]
fractionalClassKeys

fractionalClassKeys :: [Unique]
fractionalClassKeys :: [Unique]
fractionalClassKeys =
        [ Unique
fractionalClassKey
        , Unique
floatingClassKey
        , Unique
realFracClassKey
        , Unique
realFloatClassKey
        ]

-- The "standard classes" are used in defaulting (Haskell 98 report 4.3.4),
-- and are: "classes defined in the Prelude or a standard library"
standardClassKeys :: [Unique]
standardClassKeys :: [Unique]
standardClassKeys = [Unique]
derivableClassKeys forall a. [a] -> [a] -> [a]
++ [Unique]
numericClassKeys
                  forall a. [a] -> [a] -> [a]
++ [Unique
randomClassKey, Unique
randomGenClassKey,
                      Unique
functorClassKey,
                      Unique
monadClassKey, Unique
monadPlusClassKey, Unique
monadFailClassKey,
                      Unique
semigroupClassKey, Unique
monoidClassKey,
                      Unique
isStringClassKey,
                      Unique
applicativeClassKey, Unique
foldableClassKey,
                      Unique
traversableClassKey, Unique
alternativeClassKey
                     ]

{-
@derivableClassKeys@ is also used in checking \tr{deriving} constructs
(@GHC.Tc.Deriv@).
-}

derivableClassKeys :: [Unique]
derivableClassKeys :: [Unique]
derivableClassKeys
  = [ Unique
eqClassKey, Unique
ordClassKey, Unique
enumClassKey, Unique
ixClassKey,
      Unique
boundedClassKey, Unique
showClassKey, Unique
readClassKey ]


-- These are the "interactive classes" that are consulted when doing
-- defaulting. Does not include Num or IsString, which have special
-- handling.
interactiveClassNames :: [Name]
interactiveClassNames :: [Name]
interactiveClassNames
  = [ Name
showClassName, Name
eqClassName, Name
ordClassName, Name
foldableClassName
    , Name
traversableClassName ]

interactiveClassKeys :: [Unique]
interactiveClassKeys :: [Unique]
interactiveClassKeys = forall a b. (a -> b) -> [a] -> [b]
map forall a. Uniquable a => a -> Unique
getUnique [Name]
interactiveClassNames

{-
************************************************************************
*                                                                      *
   Semi-builtin names
*                                                                      *
************************************************************************

Note [pretendNameIsInScope]
~~~~~~~~~~~~~~~~~~~~~~~~~~~
In general, we filter out instances that mention types whose names are
not in scope. However, in the situations listed below, we make an exception
for some commonly used names, such as Data.Kind.Type, which may not actually
be in scope but should be treated as though they were in scope.
This includes built-in names, as well as a few extra names such as
'Type', 'TYPE', 'BoxedRep', etc.

Situations in which we apply this special logic:

  - GHCi's :info command, see GHC.Runtime.Eval.getInfo.
    This fixes #1581.

  - When reporting instance overlap errors. Not doing so could mean
    that we would omit instances for typeclasses like

      type Cls :: k -> Constraint
      class Cls a

    because BoxedRep/Lifted were not in scope.
    See GHC.Tc.Errors.potentialInstancesErrMsg.
    This fixes one of the issues reported in #20465.
-}

-- | Should this name be considered in-scope, even though it technically isn't?
--
-- This ensures that we don't filter out information because, e.g.,
-- Data.Kind.Type isn't imported.
--
-- See Note [pretendNameIsInScope].
pretendNameIsInScope :: Name -> Bool
pretendNameIsInScope :: Name -> Bool
pretendNameIsInScope Name
n
  = Name -> Bool
isBuiltInSyntax Name
n
  Bool -> Bool -> Bool
|| forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
any (Name
n forall a. Uniquable a => a -> Unique -> Bool
`hasKey`)
    [ Unique
liftedTypeKindTyConKey, Unique
unliftedTypeKindTyConKey
    , Unique
liftedDataConKey, Unique
unliftedDataConKey
    , Unique
tYPETyConKey
    , Unique
runtimeRepTyConKey, Unique
boxedRepDataConKey
    , Unique
eqTyConKey
    , Unique
listTyConKey
    , Unique
oneDataConKey
    , Unique
manyDataConKey
    , Unique
funTyConKey ]