{-
(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.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
typeRepIdName,
        Name
mkTrTypeName,
        Name
mkTrConName,
        Name
mkTrAppName,
        Name
mkTrFunName,
        Name
typeSymbolTypeRepName, Name
typeNatTypeRepName,
        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,

        -- 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,

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

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

        -- 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
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
integerToFloatName,
        Name
integerToDoubleName,
        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
rationalToFloatName,
        Name
rationalToDoubleName,

        -- Other classes
        Name
randomClassName, Name
randomGenClassName, Name
monadPlusClassName,

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

        -- Overloaded labels
        Name
isLabelClassName,

        -- 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_TYPENATS, 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_TYPENATS :: Module
gHC_TYPENATS    = FastString -> Module
mkBaseModule (String -> FastString
fsLit String
"GHC.TypeNats")
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")

mAIN, rOOT_MAIN :: Module
mAIN :: Module
mAIN            = ModuleName -> Module
mkMainModule_ ModuleName
mAIN_NAME
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:M9'
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, 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")
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 :: Name
groupWithName :: Name
groupWithName = Module -> FastString -> Unique -> Name
varQual Module
gHC_EXTS (String -> FastString
fsLit String
"groupWith") Unique
groupWithIdKey

-- 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
   , integerToFloatName
   , integerToDoubleName
   , 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
integerToFloatName :: Name
integerToFloatName        = String -> Unique -> Name
bniVarQual String
"integerToFloat#"           Unique
integerToFloatIdKey
integerToDoubleName :: Name
integerToDoubleName       = String -> Unique -> Name
bniVarQual String
"integerToDouble#"          Unique
integerToDoubleIdKey
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 :: 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

-- 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
rationalToFloatName, rationalToDoubleName :: Name
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
  :: 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

-- Class Typeable, and functions for constructing `Typeable` dictionaries
typeableClassName
  , typeRepTyConName
  , someTypeRepTyConName
  , someTypeRepDataConName
  , mkTrTypeName
  , mkTrConName
  , mkTrAppName
  , mkTrFunName
  , typeRepIdName
  , typeNatTypeRepName
  , typeSymbolTypeRepName
  , 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
-- 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

-- 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
word16TyConName, word32TyConName, word64TyConName :: Name
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

-- Overloaded labels
isLabelClassName :: Name
isLabelClassName :: Name
isLabelClassName
 = Module -> FastString -> Unique -> Name
clsQual Module
gHC_OVER_LABELS (String -> FastString
fsLit String
"IsLabel") Unique
isLabelClassNameKey

-- 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
-}

varQual, tcQual, clsQual, dcQual :: Module -> FastString -> Unique -> Name
varQual :: Module -> FastString -> Unique -> Name
varQual  = NameSpace -> Module -> FastString -> Unique -> Name
mk_known_key_name NameSpace
varName
tcQual :: Module -> FastString -> Unique -> Name
tcQual   = NameSpace -> Module -> FastString -> Unique -> Name
mk_known_key_name NameSpace
tcName
clsQual :: Module -> FastString -> Unique -> Name
clsQual  = NameSpace -> Module -> FastString -> Unique -> Name
mk_known_key_name NameSpace
clsName
dcQual :: Module -> FastString -> Unique -> Name
dcQual   = NameSpace -> Module -> FastString -> Unique -> Name
mk_known_key_name NameSpace
dataName

mk_known_key_name :: NameSpace -> Module -> FastString -> Unique -> 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 [KnowNat & 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

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

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

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

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

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


---------------- 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,
    liftedConKey, unliftedConKey, anyBoxConKey, kindConKey, boxityConKey,
    typeConKey, threadIdPrimTyConKey, bcoPrimTyConKey, ptrTyConKey,
    funPtrTyConKey, tVarPrimTyConKey, eqPrimTyConKey,
    eqReprPrimTyConKey, eqPhantPrimTyConKey, voidPrimTyConKey,
    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
voidPrimTyConKey :: Unique
voidPrimTyConKey                        = Arity -> Unique
mkPreludeTyConUnique Arity
58
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
liftedConKey :: Unique
liftedConKey                            = Arity -> Unique
mkPreludeTyConUnique Arity
69
unliftedConKey :: Unique
unliftedConKey                          = Arity -> Unique
mkPreludeTyConUnique Arity
70
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, tYPETyConKey,
  constraintKindTyConKey, runtimeRepTyConKey,
  vecCountTyConKey, vecElemTyConKey :: Unique
liftedTypeKindTyConKey :: Unique
liftedTypeKindTyConKey                  = Arity -> Unique
mkPreludeTyConUnique Arity
87
tYPETyConKey :: Unique
tYPETyConKey                            = Arity -> Unique
mkPreludeTyConUnique Arity
88
constraintKindTyConKey :: Unique
constraintKindTyConKey                  = Arity -> Unique
mkPreludeTyConUnique Arity
92
runtimeRepTyConKey :: Unique
runtimeRepTyConKey                      = Arity -> Unique
mkPreludeTyConUnique Arity
95
vecCountTyConKey :: Unique
vecCountTyConKey                        = Arity -> Unique
mkPreludeTyConUnique Arity
96
vecElemTyConKey :: Unique
vecElemTyConKey                         = Arity -> Unique
mkPreludeTyConUnique Arity
97

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

-- Type-level naturals
typeNatKindConNameKey, typeSymbolKindConNameKey,
  typeNatAddTyFamNameKey, typeNatMulTyFamNameKey, typeNatExpTyFamNameKey,
  typeNatLeqTyFamNameKey, typeNatSubTyFamNameKey