{-
(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 the
     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

#include "HsVersions.h"

import GHC.Prelude

import GHC.Unit.Types
import GHC.Unit.Module.Name
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

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

allNameStrings :: [String]
-- Infinite list of a,b,c...z, aa, ab, ac, ... etc
allNameStrings :: [String]
allNameStrings = [ Char
cChar -> String -> String
forall a. a -> [a] -> [a]
:String
cs | String
cs <- String
"" String -> [String] -> [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 Name -> Unique -> Bool
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
 [Name] -> [Name] -> [Name]
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
        -- See Note [TyConRepNames for non-wired-in TyCons]
        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,

        -- 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
groupWithName,
        Name
considerAccessibleName,

        -- Strings and lists
        Name
unpackCStringName, Name
unpackCStringUtf8Name,
        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
breakpointName, Name
breakpointCondName,
        Name
opaqueTyConName,
        Name
assertErrorName, Name
traceName,
        Name
printName, Name
fstName, Name
sndName,
        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
integerEqName,
        Name
integerNeName,
        Name
integerLeName,
        Name
integerGtName,
        Name
integerLtName,
        Name
integerGeName,
        Name
integerAbsName,
        Name
integerSignumName,
        Name
integerCompareName,
        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
naturalToWordClampName,
        Name
naturalEqName,
        Name
naturalNeName,
        Name
naturalGeName,
        Name
naturalLeName,
        Name
naturalGtName,
        Name
naturalLtName,
        Name
naturalCompareName,
        Name
naturalPopCountName,
        Name
naturalShiftRName,
        Name
naturalShiftLName,
        Name
naturalAddName,
        Name
naturalSubName,
        Name
naturalSubThrowName,
        Name
naturalSubUnsafeName,
        Name
naturalMulName,
        Name
naturalSignumName,
        Name
naturalNegateName,
        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,

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

        -- Other classes
        Name
randomClassName, Name
randomGenClassName, 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

        -- 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
noSelTyConName,
    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_PRIM_EXCEPTION,
    gHC_TYPES, gHC_GENERICS, gHC_MAGIC,
    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, dATA_TUPLE, dATA_EITHER, 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, cONTROL_APPLICATIVE, gHC_DESUGAR, rANDOM, gHC_EXTS,
    cONTROL_EXCEPTION_BASE, gHC_TYPELITS, gHC_TYPELITS_INTERNAL,
    gHC_TYPENATS, gHC_TYPENATS_INTERNAL, dATA_TYPE_EQUALITY,
    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_PRIM_EXCEPTION :: Module
gHC_PRIM_EXCEPTION = FastString -> Module
mkPrimModule (String -> FastString
fsLit String
"GHC.Prim.Exception")
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_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")
dATA_TUPLE :: Module
dATA_TUPLE      = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Tuple")
dATA_EITHER :: Module
dATA_EITHER     = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Either")
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")
cONTROL_APPLICATIVE :: Module
cONTROL_APPLICATIVE = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Control.Applicative")
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")
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_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_TYPE_EQUALITY :: Module
dATA_TYPE_EQUALITY = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"Data.Type.Equality")
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 :: Arity -> Module
mkInteractiveModule Arity
n = Unit -> ModuleName -> Module
forall u. u -> ModuleName -> GenModule u
mkModule Unit
interactiveUnit (String -> ModuleName
mkModuleName (String
"Ghci" String -> String -> String
forall a. [a] -> [a] -> [a]
++ Arity -> String
forall a. Show a => a -> String
show Arity
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")

dATA_ARRAY_PARALLEL_NAME, dATA_ARRAY_PARALLEL_PRIM_NAME :: ModuleName
dATA_ARRAY_PARALLEL_NAME :: ModuleName
dATA_ARRAY_PARALLEL_NAME      = FastString -> ModuleName
mkModuleNameFS (String -> FastString
fsLit String
"Data.Array.Parallel")
dATA_ARRAY_PARALLEL_PRIM_NAME :: ModuleName
dATA_ARRAY_PARALLEL_PRIM_NAME = FastString -> ModuleName
mkModuleNameFS (String -> FastString
fsLit String
"Data.Array.Parallel.Prim")

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

mkBignumModule :: FastString -> Module
mkBignumModule :: FastString -> Module
mkBignumModule FastString
m = Unit -> ModuleName -> Module
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 = Unit -> ModuleName -> Module
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 = Unit -> ModuleName -> Module
forall u. u -> ModuleName -> GenModule u
mkModule Unit
thisGhcUnit ModuleName
m

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

mkMainModule_ :: ModuleName -> Module
mkMainModule_ :: ModuleName -> Module
mkMainModule_ ModuleName
m = Unit -> ModuleName -> Module
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

eqString_RDR, unpackCString_RDR, unpackCStringFoldr_RDR,
    unpackCStringFoldrUtf8_RDR, unpackCStringUtf8_RDR :: RdrName
eqString_RDR :: RdrName
eqString_RDR            = Name -> RdrName
nameRdrName Name
eqStringName
unpackCString_RDR :: RdrName
unpackCString_RDR       = Name -> RdrName
nameRdrName Name
unpackCStringName
unpackCStringFoldr_RDR :: RdrName
unpackCStringFoldr_RDR  = Name -> RdrName
nameRdrName Name
unpackCStringFoldrName
unpackCStringUtf8_RDR :: RdrName
unpackCStringUtf8_RDR   = Name -> RdrName
nameRdrName Name
unpackCStringUtf8Name
unpackCStringFoldrUtf8_RDR :: RdrName
unpackCStringFoldrUtf8_RDR  = Name -> RdrName
nameRdrName Name
unpackCStringFoldrUtf8Name

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, getTag_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")
getTag_RDR :: RdrName
getTag_RDR              = Module -> FastString -> RdrName
varQual_RDR Module
gHC_BASE (String -> FastString
fsLit String
"getTag")
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

-- Generics (types)
v1TyConName, u1TyConName, par1TyConName, rec1TyConName,
  k1TyConName, m1TyConName, sumTyConName, prodTyConName,
  compTyConName, rTyConName, dTyConName,
  cTyConName, sTyConName, rec0TyConName,
  d1TyConName, c1TyConName, s1TyConName, noSelTyConName,
  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
noSelTyConName :: Name
noSelTyConName = Module -> FastString -> Unique -> Name
tcQual Module
gHC_GENERICS (String -> FastString
fsLit String
"NoSelector") Unique
noSelTyConKey

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,
    eqStringName, cstringLengthName :: Name
unpackCStringName :: Name
unpackCStringName       = Module -> FastString -> Unique -> Name
varQual Module
gHC_CSTRING (String -> FastString
fsLit String
"unpackCString#") Unique
unpackCStringIdKey
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
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
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          = Arity -> Unique
mkPreludeMiscIdUnique Arity
750
apAClassOpKey :: Unique
apAClassOpKey       = Arity -> Unique
mkPreludeMiscIdUnique Arity
751 -- <*>
pureAClassOpKey :: Unique
pureAClassOpKey     = Arity -> Unique
mkPreludeMiscIdUnique Arity
752
thenAClassOpKey :: Unique
thenAClassOpKey     = Arity -> Unique
mkPreludeMiscIdUnique Arity
753
alternativeClassKey :: Unique
alternativeClassKey = Arity -> Unique
mkPreludeMiscIdUnique Arity
754


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

-- Random PrelBase functions
fromStringName, otherwiseIdName, foldrName, buildName, augmentName,
    mapName, appendName, assertName,
    breakpointName, breakpointCondName,
    opaqueTyConName, 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
breakpointName :: Name
breakpointName    = Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"breakpoint") Unique
breakpointIdKey
breakpointCondName :: Name
breakpointCondName= Module -> FastString -> Unique -> Name
varQual Module
gHC_BASE (String -> FastString
fsLit String
"breakpointCond") Unique
breakpointCondIdKey
opaqueTyConName :: Name
opaqueTyConName   = Module -> FastString -> Unique -> Name
tcQual  Module
gHC_BASE (String -> FastString
fsLit String
"Opaque")     Unique
opaqueTyConKey
fromStringName :: Name
fromStringName = Module -> FastString -> Unique -> Name
varQual Module
dATA_STRING (String -> FastString
fsLit String
"fromString") Unique
fromStringClassOpKey

-- PrelTup
fstName, sndName :: Name
fstName :: Name
fstName           = Module -> FastString -> Unique -> Name
varQual Module
dATA_TUPLE (String -> FastString
fsLit String
"fst") Unique
fstIdKey
sndName :: Name
sndName           = Module -> FastString -> Unique -> Name
varQual Module
dATA_TUPLE (String -> FastString
fsLit String
"snd") Unique
sndIdKey

-- 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
   , integerEqName
   , integerNeName
   , integerLeName
   , integerGtName
   , integerLtName
   , integerGeName
   , integerAbsName
   , integerSignumName
   , integerCompareName
   , integerPopCountName
   , integerQuotName
   , integerRemName
   , integerDivName
   , integerModName
   , integerDivModName
   , integerQuotRemName
   , integerEncodeFloatName
   , integerEncodeDoubleName
   , integerGcdName
   , integerLcmName
   , integerAndName
   , integerOrName
   , integerXorName
   , integerComplementName
   , integerBitName
   , integerTestBitName
   , integerShiftLName
   , integerShiftRName
   , naturalToWordName
   , naturalToWordClampName
   , naturalEqName
   , naturalNeName
   , naturalGeName
   , naturalLeName
   , naturalGtName
   , naturalLtName
   , naturalCompareName
   , naturalPopCountName
   , naturalShiftRName
   , naturalShiftLName
   , naturalAddName
   , naturalSubName
   , naturalSubThrowName
   , naturalSubUnsafeName
   , naturalMulName
   , naturalSignumName
   , naturalNegateName
   , naturalQuotRemName
   , naturalQuotName
   , naturalRemName
   , naturalAndName
   , naturalAndNotName
   , naturalOrName
   , naturalXorName
   , naturalTestBitName
   , naturalBitName
   , naturalGcdName
   , naturalLcmName
   , naturalLog2Name
   , naturalLogBaseWordName
   , naturalLogBaseName
   , naturalPowModName
   , naturalSizeInBaseName
   , bignatFromWordListName
   :: 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

naturalToWordName :: Name
naturalToWordName         = String -> Unique -> Name
bnnVarQual String
"naturalToWord#"            Unique
naturalToWordIdKey
naturalToWordClampName :: Name
naturalToWordClampName    = String -> Unique -> Name
bnnVarQual String
"naturalToWordClamp#"       Unique
naturalToWordClampIdKey
naturalEqName :: Name
naturalEqName             = String -> Unique -> Name
bnnVarQual String
"naturalEq#"                Unique
naturalEqIdKey
naturalNeName :: Name
naturalNeName             = String -> Unique -> Name
bnnVarQual String
"naturalNe#"                Unique
naturalNeIdKey
naturalGeName :: Name
naturalGeName             = String -> Unique -> Name
bnnVarQual String
"naturalGe#"                Unique
naturalGeIdKey
naturalLeName :: Name
naturalLeName             = String -> Unique -> Name
bnnVarQual String
"naturalLe#"                Unique
naturalLeIdKey
naturalGtName :: Name
naturalGtName             = String -> Unique -> Name
bnnVarQual String
"naturalGt#"                Unique
naturalGtIdKey
naturalLtName :: Name
naturalLtName             = String -> Unique -> Name
bnnVarQual String
"naturalLt#"                Unique
naturalLtIdKey
naturalCompareName :: Name
naturalCompareName        = String -> Unique -> Name
bnnVarQual String
"naturalCompare"            Unique
naturalCompareIdKey
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
naturalSignumName :: Name
naturalSignumName         = String -> Unique -> Name
bnnVarQual String
"naturalSignum"             Unique
naturalSignumIdKey
naturalNegateName :: Name
naturalNegateName         = String -> Unique -> Name
bnnVarQual String
"naturalNegate"             Unique
naturalNegateIdKey
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
integerEqName :: Name
integerEqName             = String -> Unique -> Name
bniVarQual String
"integerEq#"                Unique
integerEqIdKey
integerNeName :: Name
integerNeName             = String -> Unique -> Name
bniVarQual String
"integerNe#"                Unique
integerNeIdKey
integerLeName :: Name
integerLeName             = String -> Unique -> Name
bniVarQual String
"integerLe#"                Unique
integerLeIdKey
integerGtName :: Name
integerGtName             = String -> Unique -> Name
bniVarQual String
"integerGt#"                Unique
integerGtIdKey
integerLtName :: Name
integerLtName             = String -> Unique -> Name
bniVarQual String
"integerLt#"                Unique
integerLtIdKey
integerGeName :: Name
integerGeName             = String -> Unique -> Name
bniVarQual String
"integerGe#"                Unique
integerGeIdKey
integerAbsName :: Name
integerAbsName            = String -> Unique -> Name
bniVarQual String
"integerAbs"                Unique
integerAbsIdKey
integerSignumName :: Name
integerSignumName         = String -> Unique -> Name
bniVarQual String
"integerSignum"             Unique
integerSignumIdKey
integerCompareName :: Name
integerCompareName        = String -> Unique -> Name
bniVarQual String
"integerCompare"            Unique
integerCompareIdKey
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
-- PrelFloat 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

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

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

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

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

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

typeErrorShowTypeDataConName :: Name
typeErrorShowTypeDataConName =
  Module -> FastString -> Unique -> Name
dcQual Module
gHC_TYPELITS (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_EXTS (String -> FastString
fsLit String
"IsList")    Unique
isListClassKey
fromListName :: Name
fromListName    = Module -> FastString -> Unique -> Name
varQual Module
gHC_EXTS (String -> FastString
fsLit String
"fromList")  Unique
fromListClassOpKey
fromListNName :: Name
fromListNName   = Module -> FastString -> Unique -> Name
varQual Module
gHC_EXTS (String -> FastString
fsLit String
"fromListN") Unique
fromListNClassOpKey
toListName :: Name
toListName      = Module -> FastString -> Unique -> Name
varQual Module
gHC_EXTS (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, randomClassName, randomGenClassName,
    isStringClassName :: Name
monadPlusClassName :: Name
monadPlusClassName  = Module -> FastString -> Unique -> Name
clsQual Module
mONAD (String -> FastString
fsLit String
"MonadPlus")      Unique
monadPlusClassKey
randomClassName :: Name
randomClassName     = Module -> FastString -> Unique -> Name
clsQual Module
rANDOM (String -> FastString
fsLit String
"Random")        Unique
randomClassKey
randomGenClassName :: Name
randomGenClassName  = Module -> FastString -> Unique -> Name
clsQual Module
rANDOM (String -> FastString
fsLit String
"RandomGen")     Unique
randomGenClassKey
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         = Arity -> Unique
mkPreludeClassUnique Arity
1
enumClassKey :: Unique
enumClassKey            = Arity -> Unique
mkPreludeClassUnique Arity
2
eqClassKey :: Unique
eqClassKey              = Arity -> Unique
mkPreludeClassUnique Arity
3
floatingClassKey :: Unique
floatingClassKey        = Arity -> Unique
mkPreludeClassUnique Arity
5
fractionalClassKey :: Unique
fractionalClassKey      = Arity -> Unique
mkPreludeClassUnique Arity
6
integralClassKey :: Unique
integralClassKey        = Arity -> Unique
mkPreludeClassUnique Arity
7
monadClassKey :: Unique
monadClassKey           = Arity -> Unique
mkPreludeClassUnique Arity
8
dataClassKey :: Unique
dataClassKey            = Arity -> Unique
mkPreludeClassUnique Arity
9
functorClassKey :: Unique
functorClassKey         = Arity -> Unique
mkPreludeClassUnique Arity
10
numClassKey :: Unique
numClassKey             = Arity -> Unique
mkPreludeClassUnique Arity
11
ordClassKey :: Unique
ordClassKey             = Arity -> Unique
mkPreludeClassUnique Arity
12
readClassKey :: Unique
readClassKey            = Arity -> Unique
mkPreludeClassUnique Arity
13
realClassKey :: Unique
realClassKey            = Arity -> Unique
mkPreludeClassUnique Arity
14
realFloatClassKey :: Unique
realFloatClassKey       = Arity -> Unique
mkPreludeClassUnique Arity
15
realFracClassKey :: Unique
realFracClassKey        = Arity -> Unique
mkPreludeClassUnique Arity
16
showClassKey :: Unique
showClassKey            = Arity -> Unique
mkPreludeClassUnique Arity
17
ixClassKey :: Unique
ixClassKey              = Arity -> Unique
mkPreludeClassUnique Arity
18

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

-- Kind constructors
liftedTypeKindTyConKey, unliftedTypeKindTyConKey,
  tYPETyConKey, liftedRepTyConKey, unliftedRepTyConKey,
  constraintKindTyConKey, levityTyConKey, runtimeRepTyConKey,
  vecCountTyConKey, vecElemTyConKey :: Unique
liftedTypeKindTyConKey :: Unique
liftedTypeKindTyConKey                  = Arity -> Unique
mkPreludeTyConUnique Arity
87
unliftedTypeKindTyConKey :: Unique
unliftedTypeKindTyConKey                = Arity -> Unique
mkPreludeTyConUnique Arity
88
tYPETyConKey :: Unique
tYPETyConKey                            = Arity -> Unique
mkPreludeTyConUnique Arity
89
constraintKindTyConKey :: Unique
constraintKindTyConKey                  = Arity -> Unique
mkPreludeTyConUnique Arity
92
levityTyConKey :: Unique
levityTyConKey                          = Arity -> Unique
mkPreludeTyConUnique Arity
94
runtimeRepTyConKey :: Unique
runtimeRepTyConKey                      = Arity -> Unique
mkPreludeTyConUnique Arity
95
vecCountTyConKey :: Unique
vecCountTyConKey                        = Arity -> Unique
mkPreludeTyConUnique Arity
96
vecElemTyConKey :: Unique
vecElemTyConKey                         = Arity -> Unique
mkPreludeTyConUnique Arity
97
liftedRepTyConKey :: Unique
liftedRepTyConKey                       = Arity -> Unique
mkPreludeTyConUnique Arity
98
unliftedRepTyConKey :: Unique
unliftedRepTyConKey                     = Arity -> Unique
mkPreludeTyConUnique Arity
99

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

unknownTyConKey, unknown1TyConKey, unknown2TyConKey, unknown3TyConKey,
    opaqueTyConKey :: Unique
unknownTyConKey :: Unique
unknownTyConKey                         = Arity -> Unique
mkPreludeTyConUnique Arity
129
unknown1TyConKey :: Unique
unknown1TyConKey                        = Arity -> Unique
mkPreludeTyConUnique Arity
130
unknown2TyConKey :: Unique
unknown2TyConKey                        = Arity -> Unique
mkPreludeTyConUnique Arity
131
unknown3TyConKey :: Unique
unknown3TyConKey                        = Arity -> Unique
mkPreludeTyConUnique Arity
132
opaqueTyConKey :: Unique
opaqueTyConKey                          = Arity -> Unique
mkPreludeTyConUnique Arity
133

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

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

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

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

rec0TyConKey :: Unique
rec0TyConKey  = Arity -> Unique
mkPreludeTyConUnique Arity
149
d1TyConKey :: Unique
d1TyConKey    = Arity -> Unique
mkPreludeTyConUnique Arity
151
c1TyConKey :: Unique
c1TyConKey    = Arity -> Unique
mkPreludeTyConUnique Arity
152
s1TyConKey :: Unique
s1TyConKey    = Arity -> Unique
mkPreludeTyConUnique Arity
153
noSelTyConKey :: Unique
noSelTyConKey = Arity -> Unique
mkPreludeTyConUnique Arity
154

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

multMulTyConKey :: Unique
multMulTyConKey :: Unique
multMulTyConKey = Arity -> Unique
mkPreludeTyConUnique Arity
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  = Arity -> Unique
mkPreludeTyConUnique Arity
400
typeCharKindConNameKey :: Unique
typeCharKindConNameKey    = Arity -> Unique
mkPreludeTyConUnique Arity
401
typeNatAddTyFamNameKey :: Unique
typeNatAddTyFamNameKey    = Arity -> Unique
mkPreludeTyConUnique Arity
402
typeNatMulTyFamNameKey :: Unique
typeNatMulTyFamNameKey    = Arity -> Unique
mkPreludeTyConUnique Arity
403
typeNatExpTyFamNameKey :: Unique
typeNatExpTyFamNameKey    = Arity -> Unique
mkPreludeTyConUnique Arity
404
typeNatSubTyFamNameKey :: Unique
typeNatSubTyFamNameKey    = Arity -> Unique
mkPreludeTyConUnique Arity
405
typeSymbolCmpTyFamNameKey :: Unique
typeSymbolCmpTyFamNameKey = Arity -> Unique
mkPreludeTyConUnique Arity
406
typeNatCmpTyFamNameKey :: Unique
typeNatCmpTyFamNameKey    = Arity -> Unique
mkPreludeTyConUnique Arity
407
typeCharCmpTyFamNameKey :: Unique
typeCharCmpTyFamNameKey   = Arity -> Unique
mkPreludeTyConUnique Arity
408
typeLeqCharTyFamNameKey :: Unique
typeLeqCharTyFamNameKey   = Arity -> Unique
mkPreludeTyConUnique Arity
409
typeNatDivTyFamNameKey :: Unique
typeNatDivTyFamNameKey  = Arity -> Unique
mkPreludeTyConUnique Arity
410
typeNatModTyFamNameKey :: Unique
typeNatModTyFamNameKey  = Arity -> Unique
mkPreludeTyConUnique Arity
411
typeNatLogTyFamNameKey :: Unique
typeNatLogTyFamNameKey  = Arity -> Unique
mkPreludeTyConUnique Arity
412
typeConsSymbolTyFamNameKey :: Unique
typeConsSymbolTyFamNameKey = Arity -> Unique
mkPreludeTyConUnique Arity
413
typeUnconsSymbolTyFamNameKey :: Unique
typeUnconsSymbolTyFamNameKey = Arity -> Unique
mkPreludeTyConUnique Arity
414
typeCharToNatTyFamNameKey :: Unique
typeCharToNatTyFamNameKey = Arity -> Unique
mkPreludeTyConUnique Arity
415
typeNatToCharTyFamNameKey :: Unique
typeNatToCharTyFamNameKey = Arity -> Unique
mkPreludeTyConUnique Arity
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 :: Unique

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

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

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

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


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

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

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

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

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

trTyConTyConKey, trTyConDataConKey,
  trModuleTyConKey, trModuleDataConKey,
  trNameTyConKey, trNameSDataConKey, trNameDDataConKey,
  trGhcPrimModuleKey, kindRepTyConKey,
  typeLitSortTyConKey :: Unique
trTyConTyConKey :: Unique
trTyConTyConKey                         = Arity -> Unique
mkPreludeDataConUnique Arity
40
trTyConDataConKey :: Unique
trTyConDataConKey                       = Arity -> Unique
mkPreludeDataConUnique Arity
41
trModuleTyConKey :: Unique
trModuleTyConKey                        = Arity -> Unique
mkPreludeDataConUnique Arity
42
trModuleDataConKey :: Unique
trModuleDataConKey                      = Arity -> Unique
mkPreludeDataConUnique Arity
43
trNameTyConKey :: Unique
trNameTyConKey                          = Arity -> Unique
mkPreludeDataConUnique Arity
44
trNameSDataConKey :: Unique
trNameSDataConKey                       = Arity -> Unique
mkPreludeDataConUnique Arity
45
trNameDDataConKey :: Unique
trNameDDataConKey                       = Arity -> Unique
mkPreludeDataConUnique Arity
46
trGhcPrimModuleKey :: Unique
trGhcPrimModuleKey                      = Arity -> Unique
mkPreludeDataConUnique Arity
47
kindRepTyConKey :: Unique
kindRepTyConKey                         = Arity -> Unique
mkPreludeDataConUnique Arity
48
typeLitSortTyConKey :: Unique
typeLitSortTyConKey                     = Arity -> Unique
mkPreludeDataConUnique Arity
49

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

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

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

-- 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
  = (Arity -> Unique) -> [Arity] -> [Unique]
forall a b. (a -> b) -> [a] -> [b]
map Arity -> Unique
mkPreludeDataConUnique [Arity
75..Arity
87]

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

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

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

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

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

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

-- Multiplicity

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

-- ghc-bignum
integerISDataConKey, integerINDataConKey, integerIPDataConKey,
   naturalNSDataConKey, naturalNBDataConKey :: Unique
integerISDataConKey :: Unique
integerISDataConKey       = Arity -> Unique
mkPreludeDataConUnique Arity
120
integerINDataConKey :: Unique
integerINDataConKey       = Arity -> Unique
mkPreludeDataConUnique Arity
121
integerIPDataConKey :: Unique
integerIPDataConKey       = Arity -> Unique
mkPreludeDataConUnique Arity
122
naturalNSDataConKey :: Unique
naturalNSDataConKey       = Arity -> Unique
mkPreludeDataConUnique Arity
123
naturalNBDataConKey :: Unique
naturalNBDataConKey       = Arity -> Unique
mkPreludeDataConUnique Arity
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, errorIdKey, foldrIdKey, recSelErrorIdKey,
    seqIdKey, eqStringIdKey,
    noMethodBindingErrorIdKey, nonExhaustiveGuardsErrorIdKey,
    runtimeErrorIdKey, patErrorIdKey, voidPrimIdKey,
    realWorldPrimIdKey, recConErrorIdKey,
    unpackCStringUtf8IdKey, unpackCStringAppendIdKey,
    unpackCStringFoldrIdKey, unpackCStringFoldrUtf8IdKey,
    unpackCStringIdKey,
    typeErrorIdKey, divIntIdKey, modIntIdKey,
    absentSumFieldErrorIdKey, cstringLengthIdKey,
    raiseOverflowIdKey, raiseUnderflowIdKey, raiseDivZeroIdKey
    :: Unique

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

unpackCStringIdKey :: Unique
unpackCStringIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
20
unpackCStringFoldrUtf8IdKey :: Unique
unpackCStringFoldrUtf8IdKey   = Arity -> Unique
mkPreludeMiscIdUnique Arity
21
voidPrimIdKey :: Unique
voidPrimIdKey                 = Arity -> Unique
mkPreludeMiscIdUnique Arity
22
typeErrorIdKey :: Unique
typeErrorIdKey                = Arity -> Unique
mkPreludeMiscIdUnique Arity
23
divIntIdKey :: Unique
divIntIdKey                   = Arity -> Unique
mkPreludeMiscIdUnique Arity
24
modIntIdKey :: Unique
modIntIdKey                   = Arity -> Unique
mkPreludeMiscIdUnique Arity
25
cstringLengthIdKey :: Unique
cstringLengthIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
26
raiseOverflowIdKey :: Unique
raiseOverflowIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
27
raiseUnderflowIdKey :: Unique
raiseUnderflowIdKey           = Arity -> Unique
mkPreludeMiscIdUnique Arity
28
raiseDivZeroIdKey :: Unique
raiseDivZeroIdKey             = Arity -> Unique
mkPreludeMiscIdUnique Arity
29

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

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

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

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

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

breakpointIdKey, breakpointCondIdKey :: Unique
breakpointIdKey :: Unique
breakpointIdKey               = Arity -> Unique
mkPreludeMiscIdUnique Arity
110
breakpointCondIdKey :: Unique
breakpointCondIdKey           = Arity -> Unique
mkPreludeMiscIdUnique Arity
111

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

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

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

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

magicDictKey :: Unique
magicDictKey :: Unique
magicDictKey                  = Arity -> Unique
mkPreludeMiscIdUnique Arity
156

coerceKey :: Unique
coerceKey :: Unique
coerceKey                     = Arity -> Unique
mkPreludeMiscIdUnique Arity
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                    = Arity -> Unique
mkPreludeMiscIdUnique Arity
158

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

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

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

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

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

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

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

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

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

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

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

proxyHashKey :: Unique
proxyHashKey :: Unique
proxyHashKey = Arity -> Unique
mkPreludeMiscIdUnique Arity
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            = Arity -> Unique
mkPreludeMiscIdUnique Arity
503
mkTrTypeKey :: Unique
mkTrTypeKey           = Arity -> Unique
mkPreludeMiscIdUnique Arity
504
mkTrConKey :: Unique
mkTrConKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
505
mkTrAppKey :: Unique
mkTrAppKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
506
typeNatTypeRepKey :: Unique
typeNatTypeRepKey     = Arity -> Unique
mkPreludeMiscIdUnique Arity
507
typeSymbolTypeRepKey :: Unique
typeSymbolTypeRepKey  = Arity -> Unique
mkPreludeMiscIdUnique Arity
508
typeCharTypeRepKey :: Unique
typeCharTypeRepKey    = Arity -> Unique
mkPreludeMiscIdUnique Arity
509
typeRepIdKey :: Unique
typeRepIdKey          = Arity -> Unique
mkPreludeMiscIdUnique Arity
510
mkTrFunKey :: Unique
mkTrFunKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
511

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

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

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


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

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

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

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

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

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

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

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

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

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

integerFromNaturalIdKey
   , integerToNaturalClampIdKey
   , integerToNaturalThrowIdKey
   , integerToNaturalIdKey
   , integerToWordIdKey
   , integerToIntIdKey
   , integerToWord64IdKey
   , integerToInt64IdKey
   , integerAddIdKey
   , integerMulIdKey
   , integerSubIdKey
   , integerNegateIdKey
   , integerEqIdKey
   , integerNeIdKey
   , integerLeIdKey
   , integerGtIdKey
   , integerLtIdKey
   , integerGeIdKey
   , integerAbsIdKey
   , integerSignumIdKey
   , integerCompareIdKey
   , integerPopCountIdKey
   , integerQuotIdKey
   , integerRemIdKey
   , integerDivIdKey
   , integerModIdKey
   , integerDivModIdKey
   , integerQuotRemIdKey
   , integerEncodeFloatIdKey
   , integerEncodeDoubleIdKey
   , integerGcdIdKey
   , integerLcmIdKey
   , integerAndIdKey
   , integerOrIdKey
   , integerXorIdKey
   , integerComplementIdKey
   , integerBitIdKey
   , integerTestBitIdKey
   , integerShiftLIdKey
   , integerShiftRIdKey
   , integerFromWordIdKey
   , integerFromWord64IdKey
   , integerFromInt64IdKey
   , naturalToWordIdKey
   , naturalToWordClampIdKey
   , naturalEqIdKey
   , naturalNeIdKey
   , naturalGeIdKey
   , naturalLeIdKey
   , naturalGtIdKey
   , naturalLtIdKey
   , naturalCompareIdKey
   , naturalPopCountIdKey
   , naturalShiftRIdKey
   , naturalShiftLIdKey
   , naturalAddIdKey
   , naturalSubIdKey
   , naturalSubThrowIdKey
   , naturalSubUnsafeIdKey
   , naturalMulIdKey
   , naturalSignumIdKey
   , naturalNegateIdKey
   , naturalQuotRemIdKey
   , naturalQuotIdKey
   , naturalRemIdKey
   , naturalAndIdKey
   , naturalAndNotIdKey
   , naturalOrIdKey
   , naturalXorIdKey
   , naturalTestBitIdKey
   , naturalBitIdKey
   , naturalGcdIdKey
   , naturalLcmIdKey
   , naturalLog2IdKey
   , naturalLogBaseWordIdKey
   , naturalLogBaseIdKey
   , naturalPowModIdKey
   , naturalSizeInBaseIdKey
   , bignatFromWordListIdKey
   :: Unique

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

naturalToWordIdKey :: Unique
naturalToWordIdKey         = Arity -> Unique
mkPreludeMiscIdUnique Arity
650
naturalToWordClampIdKey :: Unique
naturalToWordClampIdKey    = Arity -> Unique
mkPreludeMiscIdUnique Arity
651
naturalEqIdKey :: Unique
naturalEqIdKey             = Arity -> Unique
mkPreludeMiscIdUnique Arity
652
naturalNeIdKey :: Unique
naturalNeIdKey             = Arity -> Unique
mkPreludeMiscIdUnique Arity
653
naturalGeIdKey :: Unique
naturalGeIdKey             = Arity -> Unique
mkPreludeMiscIdUnique Arity
654
naturalLeIdKey :: Unique
naturalLeIdKey             = Arity -> Unique
mkPreludeMiscIdUnique Arity
655
naturalGtIdKey :: Unique
naturalGtIdKey             = Arity -> Unique
mkPreludeMiscIdUnique Arity
656
naturalLtIdKey :: Unique
naturalLtIdKey             = Arity -> Unique
mkPreludeMiscIdUnique Arity
657
naturalCompareIdKey :: Unique
naturalCompareIdKey        = Arity -> Unique
mkPreludeMiscIdUnique Arity
658
naturalPopCountIdKey :: Unique
naturalPopCountIdKey       = Arity -> Unique
mkPreludeMiscIdUnique Arity
659
naturalShiftRIdKey :: Unique
naturalShiftRIdKey         = Arity -> Unique
mkPreludeMiscIdUnique Arity
660
naturalShiftLIdKey :: Unique
naturalShiftLIdKey         = Arity -> Unique
mkPreludeMiscIdUnique Arity
661
naturalAddIdKey :: Unique
naturalAddIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
662
naturalSubIdKey :: Unique
naturalSubIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
663
naturalSubThrowIdKey :: Unique
naturalSubThrowIdKey       = Arity -> Unique
mkPreludeMiscIdUnique Arity
664
naturalSubUnsafeIdKey :: Unique
naturalSubUnsafeIdKey      = Arity -> Unique
mkPreludeMiscIdUnique Arity
665
naturalMulIdKey :: Unique
naturalMulIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
666
naturalSignumIdKey :: Unique
naturalSignumIdKey         = Arity -> Unique
mkPreludeMiscIdUnique Arity
667
naturalNegateIdKey :: Unique
naturalNegateIdKey         = Arity -> Unique
mkPreludeMiscIdUnique Arity
668
naturalQuotRemIdKey :: Unique
naturalQuotRemIdKey        = Arity -> Unique
mkPreludeMiscIdUnique Arity
669
naturalQuotIdKey :: Unique
naturalQuotIdKey           = Arity -> Unique
mkPreludeMiscIdUnique Arity
670
naturalRemIdKey :: Unique
naturalRemIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
671
naturalAndIdKey :: Unique
naturalAndIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
672
naturalAndNotIdKey :: Unique
naturalAndNotIdKey         = Arity -> Unique
mkPreludeMiscIdUnique Arity
673
naturalOrIdKey :: Unique
naturalOrIdKey             = Arity -> Unique
mkPreludeMiscIdUnique Arity
674
naturalXorIdKey :: Unique
naturalXorIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
675
naturalTestBitIdKey :: Unique
naturalTestBitIdKey        = Arity -> Unique
mkPreludeMiscIdUnique Arity
676
naturalBitIdKey :: Unique
naturalBitIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
677
naturalGcdIdKey :: Unique
naturalGcdIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
678
naturalLcmIdKey :: Unique
naturalLcmIdKey            = Arity -> Unique
mkPreludeMiscIdUnique Arity
679
naturalLog2IdKey :: Unique
naturalLog2IdKey           = Arity -> Unique
mkPreludeMiscIdUnique Arity
680
naturalLogBaseWordIdKey :: Unique
naturalLogBaseWordIdKey    = Arity -> Unique
mkPreludeMiscIdUnique Arity
681
naturalLogBaseIdKey :: Unique
naturalLogBaseIdKey        = Arity -> Unique
mkPreludeMiscIdUnique Arity
682
naturalPowModIdKey :: Unique
naturalPowModIdKey         = Arity -> Unique
mkPreludeMiscIdUnique Arity
683
naturalSizeInBaseIdKey :: Unique
naturalSizeInBaseIdKey     = Arity -> Unique
mkPreludeMiscIdUnique Arity
684

bignatFromWordListIdKey :: Unique
bignatFromWordListIdKey    = Arity -> Unique
mkPreludeMiscIdUnique Arity
690

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

-- Creating rationals at runtime.
mkRationalBase2IdKey, mkRationalBase10IdKey :: Unique
mkRationalBase2IdKey :: Unique
mkRationalBase2IdKey  = Arity -> Unique
mkPreludeMiscIdUnique Arity
700
mkRationalBase10IdKey :: Unique
mkRationalBase10IdKey = Arity -> Unique
mkPreludeMiscIdUnique Arity
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
        ]
        [Unique] -> [Unique] -> [Unique]
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 [Unique] -> [Unique] -> [Unique]
forall a. [a] -> [a] -> [a]
++ [Unique]
numericClassKeys
                  [Unique] -> [Unique] -> [Unique]
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 = (Name -> Unique) -> [Name] -> [Unique]
forall a b. (a -> b) -> [a] -> [b]
map Name -> Unique
forall a. Uniquable a => a -> Unique
getUnique [Name]
interactiveClassNames

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

GHCi's :info command will usually filter out instances mentioning types whose
names are not in scope. GHCi makes 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. The list in the definition of
pretendNameIsInScope below contains these commonly used names.

-}

pretendNameIsInScope :: Name -> Bool
pretendNameIsInScope :: Name -> Bool
pretendNameIsInScope Name
n
  = (Unique -> Bool) -> [Unique] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
any (Name
n Name -> Unique -> Bool
forall a. Uniquable a => a -> Unique -> Bool
`hasKey`)
    [ Unique
liftedTypeKindTyConKey, Unique
unliftedTypeKindTyConKey
    , Unique
liftedDataConKey, Unique
unliftedDataConKey
    , Unique
tYPETyConKey
    , Unique
runtimeRepTyConKey, Unique
boxedRepDataConKey ]