    -- %************************************************************************
    -- %*                                                                   *
    --              The known-key names for Template Haskell
    -- %*                                                                   *
    -- %************************************************************************

    module GHC.Builtin.Names.TH where

    import GHC.Prelude ()

    import GHC.Builtin.Names( mk_known_key_name )
    import GHC.Unit.Types
    import GHC.Unit.Module.Name
    import GHC.Types.Name( Name )
    import GHC.Types.Name.Occurrence( tcName, clsName, dataName, varName )
    import GHC.Types.Name.Reader( RdrName, nameRdrName )
    import GHC.Types.Unique
    import GHC.Builtin.Uniques
    import GHC.Data.FastString

    -- To add a name, do three things
    --
    --  1) Allocate a key
    --  2) Make a "Name"
    --  3) Add the name to templateHaskellNames

    templateHaskellNames :: [Name]
    -- The names that are implicitly mentioned by ``bracket''
    -- Should stay in sync with the import list of GHC.HsToCore.Quote

    templateHaskellNames :: [Name]
    templateHaskellNames = [
        Name
    returnQName, Name
    bindQName, Name
    sequenceQName, Name
    newNameName, Name
    liftName, Name
    liftTypedName,
        Name
    mkNameName, Name
    mkNameG_vName, Name
    mkNameG_dName, Name
    mkNameG_tcName, Name
    mkNameLName,
        Name
    mkNameSName,
        Name
    mkModNameName,
        Name
    liftStringName,
        Name
    unTypeName, Name
    unTypeCodeName,
        Name
    unsafeCodeCoerceName,

        -- Lit
        Name
    charLName, Name
    stringLName, Name
    integerLName, Name
    intPrimLName, Name
    wordPrimLName,
        Name
    floatPrimLName, Name
    doublePrimLName, Name
    rationalLName, Name
    stringPrimLName,
        Name
    charPrimLName,
        -- Pat
        Name
    litPName, Name
    varPName, Name
    tupPName, Name
    unboxedTupPName, Name
    unboxedSumPName,
        Name
    conPName, Name
    tildePName, Name
    bangPName, Name
    infixPName,
        Name
    asPName, Name
    wildPName, Name
    recPName, Name
    listPName, Name
    sigPName, Name
    viewPName,
        -- FieldPat
        Name
    fieldPatName,
        -- Match
        Name
    matchName,
        -- Clause
        Name
    clauseName,
        -- Exp
        Name
    varEName, Name
    conEName, Name
    litEName, Name
    appEName, Name
    appTypeEName, Name
    infixEName,
        Name
    infixAppName, Name
    sectionLName, Name
    sectionRName, Name
    lamEName, Name
    lamCaseEName,
        Name
    lamCasesEName, Name
    tupEName, Name
    unboxedTupEName, Name
    unboxedSumEName,
        Name
    condEName, Name
    multiIfEName, Name
    letEName, Name
    caseEName, Name
    doEName, Name
    mdoEName, Name
    compEName,
        Name
    fromEName, Name
    fromThenEName, Name
    fromToEName, Name
    fromThenToEName,
        Name
    listEName, Name
    sigEName, Name
    recConEName, Name
    recUpdEName, Name
    staticEName, Name
    unboundVarEName,
        Name
    labelEName, Name
    implicitParamVarEName, Name
    getFieldEName, Name
    projectionEName,
        -- FieldExp
        Name
    fieldExpName,
        -- Body
        Name
    guardedBName, Name
    normalBName,
        -- Guard
        Name
    normalGEName, Name
    patGEName,
        -- Stmt
        Name
    bindSName, Name
    letSName, Name
    noBindSName, Name
    parSName, Name
    recSName,
        -- Dec
        Name
    funDName, Name
    valDName, Name
    dataDName, Name
    newtypeDName, Name
    tySynDName,
        Name
    classDName, Name
    instanceWithOverlapDName,
        Name
    standaloneDerivWithStrategyDName, Name
    sigDName, Name
    kiSigDName, Name
    forImpDName,
        Name
    pragInlDName, Name
    pragSpecDName, Name
    pragSpecInlDName, Name
    pragSpecInstDName,
        Name
    pragRuleDName, Name
    pragCompleteDName, Name
    pragAnnDName, Name
    defaultSigDName, Name
    defaultDName,
        Name
    dataFamilyDName, Name
    openTypeFamilyDName, Name
    closedTypeFamilyDName,
        Name
    dataInstDName, Name
    newtypeInstDName, Name
    tySynInstDName,
        Name
    infixLDName, Name
    infixRDName, Name
    infixNDName,
        Name
    roleAnnotDName, Name
    patSynDName, Name
    patSynSigDName,
        Name
    implicitParamBindDName,
        -- Cxt
        Name
    cxtName,

        -- SourceUnpackedness
        Name
    noSourceUnpackednessName, Name
    sourceNoUnpackName, Name
    sourceUnpackName,
        -- SourceStrictness
        Name
    noSourceStrictnessName, Name
    sourceLazyName, Name
    sourceStrictName,
        -- Con
        Name
    normalCName, Name
    recCName, Name
    infixCName, Name
    forallCName, Name
    gadtCName, Name
    recGadtCName,
        -- Bang
        Name
    bangName,
        -- BangType
        Name
    bangTypeName,
        -- VarBangType
        Name
    varBangTypeName,
        -- PatSynDir (for pattern synonyms)
        Name
    unidirPatSynName, Name
    implBidirPatSynName, Name
    explBidirPatSynName,
        -- PatSynArgs (for pattern synonyms)
        Name
    prefixPatSynName, Name
    infixPatSynName, Name
    recordPatSynName,
        -- Type
        Name
    forallTName, Name
    forallVisTName, Name
    varTName, Name
    conTName, Name
    infixTName, Name
    appTName,
        Name
    appKindTName, Name
    equalityTName, Name
    tupleTName, Name
    unboxedTupleTName,
        Name
    unboxedSumTName, Name
    arrowTName, Name
    mulArrowTName, Name
    listTName, Name
    sigTName, Name
    litTName,
        Name
    promotedTName, Name
    promotedTupleTName, Name
    promotedNilTName, Name
    promotedConsTName,
        Name
    wildCardTName, Name
    implicitParamTName,
        -- TyLit
        Name
    numTyLitName, Name
    strTyLitName, Name
    charTyLitName,
        -- TyVarBndr
        Name
    plainTVName, Name
    kindedTVName,
        Name
    plainInvisTVName, Name
    kindedInvisTVName,
        -- Specificity
        Name
    specifiedSpecName, Name
    inferredSpecName,
        -- Role
        Name
    nominalRName, Name
    representationalRName, Name
    phantomRName, Name
    inferRName,
        -- Kind
        Name
    starKName, Name
    constraintKName,
        -- FamilyResultSig
        Name
    noSigName, Name
    kindSigName, Name
    tyVarSigName,
        -- InjectivityAnn
        Name
    injectivityAnnName,
        -- Callconv
        Name
    cCallName, Name
    stdCallName, Name
    cApiCallName, Name
    primCallName, Name
    javaScriptCallName,
        -- Safety
        Name
    unsafeName,
        Name
    safeName,
        Name
    interruptibleName,
        -- Inline
        Name
    noInlineDataConName, Name
    inlineDataConName, Name
    inlinableDataConName,
        -- RuleMatch
        Name
    conLikeDataConName, Name
    funLikeDataConName,
        -- Phases
        Name
    allPhasesDataConName, Name
    fromPhaseDataConName, Name
    beforePhaseDataConName,
        -- Overlap
        Name
    overlappableDataConName, Name
    overlappingDataConName, Name
    overlapsDataConName,
        Name
    incoherentDataConName,
        -- DerivStrategy
        Name
    stockStrategyName, Name
    anyclassStrategyName,
        Name
    newtypeStrategyName, Name
    viaStrategyName,
        -- RuleBndr
        Name
    ruleVarName, Name
    typedRuleVarName,
        -- FunDep
        Name
    funDepName,
        -- TySynEqn
        Name
    tySynEqnName,
        -- AnnTarget
        Name
    valueAnnotationName, Name
    typeAnnotationName, Name
    moduleAnnotationName,
        -- DerivClause
        Name
    derivClauseName,

        -- The type classes
        Name
    liftClassName, Name
    quoteClassName,

        -- And the tycons
        Name
    qTyConName, Name
    nameTyConName, Name
    patTyConName, Name
    fieldPatTyConName, Name
    matchTyConName,
        Name
    expQTyConName, Name
    fieldExpTyConName, Name
    predTyConName,
        Name
    stmtTyConName,  Name
    decsTyConName, Name
    conTyConName, Name
    bangTypeTyConName,
        Name
    varBangTypeTyConName, Name
    typeQTyConName, Name
    expTyConName, Name
    decTyConName,
        Name
    typeTyConName, Name
    tyVarBndrUnitTyConName, Name
    tyVarBndrSpecTyConName, Name
    clauseTyConName,
        Name
    patQTyConName, Name
    funDepTyConName, Name
    decsQTyConName,
        Name
    ruleBndrTyConName, Name
    tySynEqnTyConName,
        Name
    roleTyConName, Name
    codeTyConName, Name
    injAnnTyConName, Name
    kindTyConName,
        Name
    overlapTyConName, Name
    derivClauseTyConName, Name
    derivStrategyTyConName,
        Name
    modNameTyConName,

        -- Quasiquoting
        Name
    quoteDecName, Name
    quoteTypeName, Name
    quoteExpName, Name
    quotePatName]

    thSyn, thLib, qqLib :: Module
    thSyn :: Module
    thSyn = FastString -> Module
    mkTHModule (String -> FastString
    fsLit String
    "Language.Haskell.TH.Syntax")
    thLib :: Module
    thLib = FastString -> Module
    mkTHModule (String -> FastString
    fsLit String
    "Language.Haskell.TH.Lib.Internal")
    qqLib :: Module
    qqLib = FastString -> Module
    mkTHModule (String -> FastString
    fsLit String
    "Language.Haskell.TH.Quote")

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

    libFun, libTc, thFun, thTc, thCls, thCon, qqFun :: FastString -> Unique -> Name
    libFun :: FastString -> Unique -> Name
    libFun = NameSpace -> Module -> FastString -> Unique -> Name
    mk_known_key_name NameSpace
    varName  Module
    thLib
    libTc :: FastString -> Unique -> Name
    libTc  = NameSpace -> Module -> FastString -> Unique -> Name
    mk_known_key_name NameSpace
    tcName   Module
    thLib
    thFun :: FastString -> Unique -> Name
    thFun  = NameSpace -> Module -> FastString -> Unique -> Name
    mk_known_key_name NameSpace
    varName  Module
    thSyn
    thTc :: FastString -> Unique -> Name
    thTc   = NameSpace -> Module -> FastString -> Unique -> Name
    mk_known_key_name NameSpace
    tcName   Module
    thSyn
    thCls :: FastString -> Unique -> Name
    thCls  = NameSpace -> Module -> FastString -> Unique -> Name
    mk_known_key_name NameSpace
    clsName  Module
    thSyn
    thCon :: FastString -> Unique -> Name
    thCon  = NameSpace -> Module -> FastString -> Unique -> Name
    mk_known_key_name NameSpace
    dataName Module
    thSyn
    qqFun :: FastString -> Unique -> Name
    qqFun  = NameSpace -> Module -> FastString -> Unique -> Name
    mk_known_key_name NameSpace
    varName  Module
    qqLib

    -------------------- TH.Syntax -----------------------
    liftClassName :: Name
    liftClassName :: Name
    liftClassName = FastString -> Unique -> Name
    thCls (String -> FastString
    fsLit String
    "Lift") Unique
    liftClassKey

    quoteClassName :: Name
    quoteClassName :: Name
    quoteClassName = FastString -> Unique -> Name
    thCls (String -> FastString
    fsLit String
    "Quote") Unique
    quoteClassKey

    qTyConName, nameTyConName, fieldExpTyConName, patTyConName,
        fieldPatTyConName, expTyConName, decTyConName, typeTyConName,
        matchTyConName, clauseTyConName, funDepTyConName, predTyConName,
        codeTyConName, injAnnTyConName, overlapTyConName, decsTyConName,
        modNameTyConName :: Name
    qTyConName :: Name
    qTyConName             = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Q")              Unique
    qTyConKey
    nameTyConName :: Name
    nameTyConName          = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Name")           Unique
    nameTyConKey
    fieldExpTyConName :: Name
    fieldExpTyConName      = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "FieldExp")       Unique
    fieldExpTyConKey
    patTyConName :: Name
    patTyConName           = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Pat")            Unique
    patTyConKey
    fieldPatTyConName :: Name
    fieldPatTyConName      = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "FieldPat")       Unique
    fieldPatTyConKey
    expTyConName :: Name
    expTyConName           = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Exp")            Unique
    expTyConKey
    decTyConName :: Name
    decTyConName           = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Dec")            Unique
    decTyConKey
    decsTyConName :: Name
    decsTyConName          = FastString -> Unique -> Name
    libTc (String -> FastString
    fsLit String
    "Decs")           Unique
    decsTyConKey
    typeTyConName :: Name
    typeTyConName          = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Type")           Unique
    typeTyConKey
    matchTyConName :: Name
    matchTyConName         = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Match")          Unique
    matchTyConKey
    clauseTyConName :: Name
    clauseTyConName        = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Clause")         Unique
    clauseTyConKey
    funDepTyConName :: Name
    funDepTyConName        = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "FunDep")         Unique
    funDepTyConKey
    predTyConName :: Name
    predTyConName          = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Pred")           Unique
    predTyConKey
    codeTyConName :: Name
    codeTyConName          = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Code")           Unique
    codeTyConKey
    injAnnTyConName :: Name
    injAnnTyConName        = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "InjectivityAnn") Unique
    injAnnTyConKey
    overlapTyConName :: Name
    overlapTyConName       = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Overlap")        Unique
    overlapTyConKey
    modNameTyConName :: Name
    modNameTyConName       = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "ModName")        Unique
    modNameTyConKey

    returnQName, bindQName, sequenceQName, newNameName, liftName,
        mkNameName, mkNameG_vName, mkNameG_dName, mkNameG_tcName,
        mkNameLName, mkNameSName, liftStringName, unTypeName, unTypeCodeName,
        unsafeCodeCoerceName, liftTypedName, mkModNameName :: Name
    returnQName :: Name
    returnQName    = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "returnQ")   Unique
    returnQIdKey
    bindQName :: Name
    bindQName      = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "bindQ")     Unique
    bindQIdKey
    sequenceQName :: Name
    sequenceQName  = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "sequenceQ") Unique
    sequenceQIdKey
    newNameName :: Name
    newNameName    = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "newName")   Unique
    newNameIdKey
    liftName :: Name
    liftName       = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "lift")      Unique
    liftIdKey
    liftStringName :: Name
    liftStringName = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "liftString")  Unique
    liftStringIdKey
    mkNameName :: Name
    mkNameName     = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "mkName")     Unique
    mkNameIdKey
    mkNameG_vName :: Name
    mkNameG_vName  = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "mkNameG_v")  Unique
    mkNameG_vIdKey
    mkNameG_dName :: Name
    mkNameG_dName  = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "mkNameG_d")  Unique
    mkNameG_dIdKey
    mkNameG_tcName :: Name
    mkNameG_tcName = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "mkNameG_tc") Unique
    mkNameG_tcIdKey
    mkNameLName :: Name
    mkNameLName    = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "mkNameL")    Unique
    mkNameLIdKey
    mkNameSName :: Name
    mkNameSName    = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "mkNameS")    Unique
    mkNameSIdKey
    mkModNameName :: Name
    mkModNameName  = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "mkModName")  Unique
    mkModNameIdKey
    unTypeName :: Name
    unTypeName     = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "unType")     Unique
    unTypeIdKey
    unTypeCodeName :: Name
    unTypeCodeName    = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "unTypeCode") Unique
    unTypeCodeIdKey
    unsafeCodeCoerceName :: Name
    unsafeCodeCoerceName = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "unsafeCodeCoerce") Unique
    unsafeCodeCoerceIdKey
    liftTypedName :: Name
    liftTypedName = FastString -> Unique -> Name
    thFun (String -> FastString
    fsLit String
    "liftTyped") Unique
    liftTypedIdKey

    -------------------- TH.Lib -----------------------
    -- data Lit = ...
    charLName, stringLName, integerLName, intPrimLName, wordPrimLName,
        floatPrimLName, doublePrimLName, rationalLName, stringPrimLName,
        charPrimLName :: Name
    charLName :: Name
    charLName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "charL")       Unique
    charLIdKey
    stringLName :: Name
    stringLName     = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "stringL")     Unique
    stringLIdKey
    integerLName :: Name
    integerLName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "integerL")    Unique
    integerLIdKey
    intPrimLName :: Name
    intPrimLName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "intPrimL")    Unique
    intPrimLIdKey
    wordPrimLName :: Name
    wordPrimLName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "wordPrimL")   Unique
    wordPrimLIdKey
    floatPrimLName :: Name
    floatPrimLName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "floatPrimL")  Unique
    floatPrimLIdKey
    doublePrimLName :: Name
    doublePrimLName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "doublePrimL") Unique
    doublePrimLIdKey
    rationalLName :: Name
    rationalLName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "rationalL")     Unique
    rationalLIdKey
    stringPrimLName :: Name
    stringPrimLName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "stringPrimL") Unique
    stringPrimLIdKey
    charPrimLName :: Name
    charPrimLName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "charPrimL")   Unique
    charPrimLIdKey

    -- data Pat = ...
    litPName, varPName, tupPName, unboxedTupPName, unboxedSumPName, conPName,
        infixPName, tildePName, bangPName, asPName, wildPName, recPName, listPName,
        sigPName, viewPName :: Name
    litPName :: Name
    litPName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "litP")   Unique
    litPIdKey
    varPName :: Name
    varPName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "varP")   Unique
    varPIdKey
    tupPName :: Name
    tupPName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "tupP")   Unique
    tupPIdKey
    unboxedTupPName :: Name
    unboxedTupPName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "unboxedTupP") Unique
    unboxedTupPIdKey
    unboxedSumPName :: Name
    unboxedSumPName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "unboxedSumP") Unique
    unboxedSumPIdKey
    conPName :: Name
    conPName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "conP")   Unique
    conPIdKey
    infixPName :: Name
    infixPName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "infixP") Unique
    infixPIdKey
    tildePName :: Name
    tildePName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "tildeP") Unique
    tildePIdKey
    bangPName :: Name
    bangPName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "bangP")  Unique
    bangPIdKey
    asPName :: Name
    asPName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "asP")    Unique
    asPIdKey
    wildPName :: Name
    wildPName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "wildP")  Unique
    wildPIdKey
    recPName :: Name
    recPName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "recP")   Unique
    recPIdKey
    listPName :: Name
    listPName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "listP")  Unique
    listPIdKey
    sigPName :: Name
    sigPName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "sigP")   Unique
    sigPIdKey
    viewPName :: Name
    viewPName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "viewP")  Unique
    viewPIdKey

    -- type FieldPat = ...
    fieldPatName :: Name
    fieldPatName :: Name
    fieldPatName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "fieldPat") Unique
    fieldPatIdKey

    -- data Match = ...
    matchName :: Name
    matchName :: Name
    matchName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "match") Unique
    matchIdKey

    -- data Clause = ...
    clauseName :: Name
    clauseName :: Name
    clauseName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "clause") Unique
    clauseIdKey

    -- data Exp = ...
    varEName, conEName, litEName, appEName, appTypeEName, infixEName, infixAppName,
        sectionLName, sectionRName, lamEName, lamCaseEName, lamCasesEName, tupEName,
        unboxedTupEName, unboxedSumEName, condEName, multiIfEName, letEName,
        caseEName, doEName, mdoEName, compEName, staticEName, unboundVarEName,
        labelEName, implicitParamVarEName, getFieldEName, projectionEName :: Name
    varEName :: Name
    varEName              = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "varE")              Unique
    varEIdKey
    conEName :: Name
    conEName              = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "conE")              Unique
    conEIdKey
    litEName :: Name
    litEName              = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "litE")              Unique
    litEIdKey
    appEName :: Name
    appEName              = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "appE")              Unique
    appEIdKey
    appTypeEName :: Name
    appTypeEName          = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "appTypeE")          Unique
    appTypeEIdKey
    infixEName :: Name
    infixEName            = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "infixE")            Unique
    infixEIdKey
    infixAppName :: Name
    infixAppName          = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "infixApp")          Unique
    infixAppIdKey
    sectionLName :: Name
    sectionLName          = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "sectionL")          Unique
    sectionLIdKey
    sectionRName :: Name
    sectionRName          = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "sectionR")          Unique
    sectionRIdKey
    lamEName :: Name
    lamEName              = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "lamE")              Unique
    lamEIdKey
    lamCaseEName :: Name
    lamCaseEName          = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "lamCaseE")          Unique
    lamCaseEIdKey
    lamCasesEName :: Name
    lamCasesEName         = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "lamCasesE")         Unique
    lamCasesEIdKey
    tupEName :: Name
    tupEName              = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "tupE")              Unique
    tupEIdKey
    unboxedTupEName :: Name
    unboxedTupEName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "unboxedTupE")       Unique
    unboxedTupEIdKey
    unboxedSumEName :: Name
    unboxedSumEName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "unboxedSumE")       Unique
    unboxedSumEIdKey
    condEName :: Name
    condEName             = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "condE")             Unique
    condEIdKey
    multiIfEName :: Name
    multiIfEName          = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "multiIfE")          Unique
    multiIfEIdKey
    letEName :: Name
    letEName              = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "letE")              Unique
    letEIdKey
    caseEName :: Name
    caseEName             = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "caseE")             Unique
    caseEIdKey
    doEName :: Name
    doEName               = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "doE")               Unique
    doEIdKey
    mdoEName :: Name
    mdoEName              = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "mdoE")              Unique
    mdoEIdKey
    compEName :: Name
    compEName             = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "compE")             Unique
    compEIdKey
    -- ArithSeq skips a level
    fromEName, fromThenEName, fromToEName, fromThenToEName :: Name
    fromEName :: Name
    fromEName             = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "fromE")             Unique
    fromEIdKey
    fromThenEName :: Name
    fromThenEName         = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "fromThenE")         Unique
    fromThenEIdKey
    fromToEName :: Name
    fromToEName           = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "fromToE")           Unique
    fromToEIdKey
    fromThenToEName :: Name
    fromThenToEName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "fromThenToE")       Unique
    fromThenToEIdKey
    -- end ArithSeq
    listEName, sigEName, recConEName, recUpdEName :: Name
    listEName :: Name
    listEName             = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "listE")             Unique
    listEIdKey
    sigEName :: Name
    sigEName              = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "sigE")              Unique
    sigEIdKey
    recConEName :: Name
    recConEName           = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "recConE")           Unique
    recConEIdKey
    recUpdEName :: Name
    recUpdEName           = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "recUpdE")           Unique
    recUpdEIdKey
    staticEName :: Name
    staticEName           = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "staticE")           Unique
    staticEIdKey
    unboundVarEName :: Name
    unboundVarEName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "unboundVarE")       Unique
    unboundVarEIdKey
    labelEName :: Name
    labelEName            = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "labelE")            Unique
    labelEIdKey
    implicitParamVarEName :: Name
    implicitParamVarEName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "implicitParamVarE") Unique
    implicitParamVarEIdKey
    getFieldEName :: Name
    getFieldEName         = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "getFieldE")         Unique
    getFieldEIdKey
    projectionEName :: Name
    projectionEName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "projectionE")       Unique
    projectionEIdKey

    -- type FieldExp = ...
    fieldExpName :: Name
    fieldExpName :: Name
    fieldExpName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "fieldExp") Unique
    fieldExpIdKey

    -- data Body = ...
    guardedBName, normalBName :: Name
    guardedBName :: Name
    guardedBName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "guardedB") Unique
    guardedBIdKey
    normalBName :: Name
    normalBName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "normalB")  Unique
    normalBIdKey

    -- data Guard = ...
    normalGEName, patGEName :: Name
    normalGEName :: Name
    normalGEName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "normalGE") Unique
    normalGEIdKey
    patGEName :: Name
    patGEName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "patGE")    Unique
    patGEIdKey

    -- data Stmt = ...
    bindSName, letSName, noBindSName, parSName, recSName :: Name
    bindSName :: Name
    bindSName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "bindS")   Unique
    bindSIdKey
    letSName :: Name
    letSName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "letS")    Unique
    letSIdKey
    noBindSName :: Name
    noBindSName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "noBindS") Unique
    noBindSIdKey
    parSName :: Name
    parSName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "parS")    Unique
    parSIdKey
    recSName :: Name
    recSName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "recS")    Unique
    recSIdKey

    -- data Dec = ...
    funDName, valDName, dataDName, newtypeDName, tySynDName, classDName,
        instanceWithOverlapDName, sigDName, kiSigDName, forImpDName, pragInlDName,
        pragSpecDName, pragSpecInlDName, pragSpecInstDName, pragRuleDName,
        pragAnnDName, standaloneDerivWithStrategyDName, defaultSigDName, defaultDName,
        dataInstDName, newtypeInstDName, tySynInstDName, dataFamilyDName,
        openTypeFamilyDName, closedTypeFamilyDName, infixLDName, infixRDName,
        infixNDName, roleAnnotDName, patSynDName, patSynSigDName,
        pragCompleteDName, implicitParamBindDName :: Name
    funDName :: Name
    funDName                         = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "funD")                         Unique
    funDIdKey
    valDName :: Name
    valDName                         = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "valD")                         Unique
    valDIdKey
    dataDName :: Name
    dataDName                        = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "dataD")                        Unique
    dataDIdKey
    newtypeDName :: Name
    newtypeDName                     = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "newtypeD")                     Unique
    newtypeDIdKey
    tySynDName :: Name
    tySynDName                       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "tySynD")                       Unique
    tySynDIdKey
    classDName :: Name
    classDName                       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "classD")                       Unique
    classDIdKey
    instanceWithOverlapDName :: Name
    instanceWithOverlapDName         = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "instanceWithOverlapD")         Unique
    instanceWithOverlapDIdKey
    standaloneDerivWithStrategyDName :: Name
    standaloneDerivWithStrategyDName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "standaloneDerivWithStrategyD") Unique
    standaloneDerivWithStrategyDIdKey
    sigDName :: Name
    sigDName                         = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "sigD")                         Unique
    sigDIdKey
    kiSigDName :: Name
    kiSigDName                       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "kiSigD")                       Unique
    kiSigDIdKey
    defaultDName :: Name
    defaultDName                     = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "defaultD")                     Unique
    defaultDIdKey
    defaultSigDName :: Name
    defaultSigDName                  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "defaultSigD")                  Unique
    defaultSigDIdKey
    forImpDName :: Name
    forImpDName                      = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "forImpD")                      Unique
    forImpDIdKey
    pragInlDName :: Name
    pragInlDName                     = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "pragInlD")                     Unique
    pragInlDIdKey
    pragSpecDName :: Name
    pragSpecDName                    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "pragSpecD")                    Unique
    pragSpecDIdKey
    pragSpecInlDName :: Name
    pragSpecInlDName                 = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "pragSpecInlD")                 Unique
    pragSpecInlDIdKey
    pragSpecInstDName :: Name
    pragSpecInstDName                = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "pragSpecInstD")                Unique
    pragSpecInstDIdKey
    pragRuleDName :: Name
    pragRuleDName                    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "pragRuleD")                    Unique
    pragRuleDIdKey
    pragCompleteDName :: Name
    pragCompleteDName                = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "pragCompleteD")                Unique
    pragCompleteDIdKey
    pragAnnDName :: Name
    pragAnnDName                     = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "pragAnnD")                     Unique
    pragAnnDIdKey
    dataInstDName :: Name
    dataInstDName                    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "dataInstD")                    Unique
    dataInstDIdKey
    newtypeInstDName :: Name
    newtypeInstDName                 = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "newtypeInstD")                 Unique
    newtypeInstDIdKey
    tySynInstDName :: Name
    tySynInstDName                   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "tySynInstD")                   Unique
    tySynInstDIdKey
    openTypeFamilyDName :: Name
    openTypeFamilyDName              = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "openTypeFamilyD")              Unique
    openTypeFamilyDIdKey
    closedTypeFamilyDName :: Name
    closedTypeFamilyDName            = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "closedTypeFamilyD")            Unique
    closedTypeFamilyDIdKey
    dataFamilyDName :: Name
    dataFamilyDName                  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "dataFamilyD")                  Unique
    dataFamilyDIdKey
    infixLDName :: Name
    infixLDName                      = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "infixLD")                      Unique
    infixLDIdKey
    infixRDName :: Name
    infixRDName                      = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "infixRD")                      Unique
    infixRDIdKey
    infixNDName :: Name
    infixNDName                      = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "infixND")                      Unique
    infixNDIdKey
    roleAnnotDName :: Name
    roleAnnotDName                   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "roleAnnotD")                   Unique
    roleAnnotDIdKey
    patSynDName :: Name
    patSynDName                      = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "patSynD")                      Unique
    patSynDIdKey
    patSynSigDName :: Name
    patSynSigDName                   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "patSynSigD")                   Unique
    patSynSigDIdKey
    implicitParamBindDName :: Name
    implicitParamBindDName           = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "implicitParamBindD")           Unique
    implicitParamBindDIdKey

    -- type Ctxt = ...
    cxtName :: Name
    cxtName :: Name
    cxtName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "cxt") Unique
    cxtIdKey

    -- data SourceUnpackedness = ...
    noSourceUnpackednessName, sourceNoUnpackName, sourceUnpackName :: Name
    noSourceUnpackednessName :: Name
    noSourceUnpackednessName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "noSourceUnpackedness") Unique
    noSourceUnpackednessKey
    sourceNoUnpackName :: Name
    sourceNoUnpackName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "sourceNoUnpack")       Unique
    sourceNoUnpackKey
    sourceUnpackName :: Name
    sourceUnpackName         = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "sourceUnpack")         Unique
    sourceUnpackKey

    -- data SourceStrictness = ...
    noSourceStrictnessName, sourceLazyName, sourceStrictName :: Name
    noSourceStrictnessName :: Name
    noSourceStrictnessName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "noSourceStrictness") Unique
    noSourceStrictnessKey
    sourceLazyName :: Name
    sourceLazyName         = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "sourceLazy")         Unique
    sourceLazyKey
    sourceStrictName :: Name
    sourceStrictName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "sourceStrict")       Unique
    sourceStrictKey

    -- data Con = ...
    normalCName, recCName, infixCName, forallCName, gadtCName, recGadtCName :: Name
    normalCName :: Name
    normalCName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "normalC" ) Unique
    normalCIdKey
    recCName :: Name
    recCName     = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "recC"    ) Unique
    recCIdKey
    infixCName :: Name
    infixCName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "infixC"  ) Unique
    infixCIdKey
    forallCName :: Name
    forallCName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "forallC" ) Unique
    forallCIdKey
    gadtCName :: Name
    gadtCName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "gadtC"   ) Unique
    gadtCIdKey
    recGadtCName :: Name
    recGadtCName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "recGadtC") Unique
    recGadtCIdKey

    -- data Bang = ...
    bangName :: Name
    bangName :: Name
    bangName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "bang") Unique
    bangIdKey

    -- type BangType = ...
    bangTypeName :: Name
    bangTypeName :: Name
    bangTypeName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "bangType") Unique
    bangTKey

    -- type VarBangType = ...
    varBangTypeName :: Name
    varBangTypeName :: Name
    varBangTypeName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "varBangType") Unique
    varBangTKey

    -- data PatSynDir = ...
    unidirPatSynName, implBidirPatSynName, explBidirPatSynName :: Name
    unidirPatSynName :: Name
    unidirPatSynName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "unidir")    Unique
    unidirPatSynIdKey
    implBidirPatSynName :: Name
    implBidirPatSynName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "implBidir") Unique
    implBidirPatSynIdKey
    explBidirPatSynName :: Name
    explBidirPatSynName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "explBidir") Unique
    explBidirPatSynIdKey

    -- data PatSynArgs = ...
    prefixPatSynName, infixPatSynName, recordPatSynName :: Name
    prefixPatSynName :: Name
    prefixPatSynName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "prefixPatSyn") Unique
    prefixPatSynIdKey
    infixPatSynName :: Name
    infixPatSynName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "infixPatSyn")  Unique
    infixPatSynIdKey
    recordPatSynName :: Name
    recordPatSynName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "recordPatSyn") Unique
    recordPatSynIdKey

    -- data Type = ...
    forallTName, forallVisTName, varTName, conTName, infixTName, tupleTName,
        unboxedTupleTName, unboxedSumTName, arrowTName, mulArrowTName, listTName,
        appTName, appKindTName, sigTName, equalityTName, litTName, promotedTName,
        promotedTupleTName, promotedNilTName, promotedConsTName,
        wildCardTName, implicitParamTName :: Name
    forallTName :: Name
    forallTName         = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "forallT")        Unique
    forallTIdKey
    forallVisTName :: Name
    forallVisTName      = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "forallVisT")     Unique
    forallVisTIdKey
    varTName :: Name
    varTName            = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "varT")           Unique
    varTIdKey
    conTName :: Name
    conTName            = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "conT")           Unique
    conTIdKey
    tupleTName :: Name
    tupleTName          = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "tupleT")         Unique
    tupleTIdKey
    unboxedTupleTName :: Name
    unboxedTupleTName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "unboxedTupleT")  Unique
    unboxedTupleTIdKey
    unboxedSumTName :: Name
    unboxedSumTName     = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "unboxedSumT")    Unique
    unboxedSumTIdKey
    arrowTName :: Name
    arrowTName          = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "arrowT")         Unique
    arrowTIdKey
    mulArrowTName :: Name
    mulArrowTName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "mulArrowT")      Unique
    mulArrowTIdKey
    listTName :: Name
    listTName           = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "listT")          Unique
    listTIdKey
    appTName :: Name
    appTName            = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "appT")           Unique
    appTIdKey
    appKindTName :: Name
    appKindTName        = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "appKindT")       Unique
    appKindTIdKey
    sigTName :: Name
    sigTName            = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "sigT")           Unique
    sigTIdKey
    equalityTName :: Name
    equalityTName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "equalityT")      Unique
    equalityTIdKey
    litTName :: Name
    litTName            = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "litT")           Unique
    litTIdKey
    promotedTName :: Name
    promotedTName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "promotedT")      Unique
    promotedTIdKey
    promotedTupleTName :: Name
    promotedTupleTName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "promotedTupleT") Unique
    promotedTupleTIdKey
    promotedNilTName :: Name
    promotedNilTName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "promotedNilT")   Unique
    promotedNilTIdKey
    promotedConsTName :: Name
    promotedConsTName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "promotedConsT")  Unique
    promotedConsTIdKey
    wildCardTName :: Name
    wildCardTName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "wildCardT")      Unique
    wildCardTIdKey
    infixTName :: Name
    infixTName          = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "infixT")         Unique
    infixTIdKey
    implicitParamTName :: Name
    implicitParamTName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "implicitParamT") Unique
    implicitParamTIdKey

    -- data TyLit = ...
    numTyLitName, strTyLitName, charTyLitName :: Name
    numTyLitName :: Name
    numTyLitName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "numTyLit") Unique
    numTyLitIdKey
    strTyLitName :: Name
    strTyLitName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "strTyLit") Unique
    strTyLitIdKey
    charTyLitName :: Name
    charTyLitName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "charTyLit") Unique
    charTyLitIdKey

    -- data TyVarBndr = ...
    plainTVName, kindedTVName :: Name
    plainTVName :: Name
    plainTVName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "plainTV")  Unique
    plainTVIdKey
    kindedTVName :: Name
    kindedTVName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "kindedTV") Unique
    kindedTVIdKey

    plainInvisTVName, kindedInvisTVName :: Name
    plainInvisTVName :: Name
    plainInvisTVName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "plainInvisTV")  Unique
    plainInvisTVIdKey
    kindedInvisTVName :: Name
    kindedInvisTVName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "kindedInvisTV") Unique
    kindedInvisTVIdKey

    -- data Specificity = ...
    specifiedSpecName, inferredSpecName :: Name
    specifiedSpecName :: Name
    specifiedSpecName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "specifiedSpec") Unique
    specifiedSpecKey
    inferredSpecName :: Name
    inferredSpecName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "inferredSpec")  Unique
    inferredSpecKey

    -- data Role = ...
    nominalRName, representationalRName, phantomRName, inferRName :: Name
    nominalRName :: Name
    nominalRName          = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "nominalR")          Unique
    nominalRIdKey
    representationalRName :: Name
    representationalRName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "representationalR") Unique
    representationalRIdKey
    phantomRName :: Name
    phantomRName          = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "phantomR")          Unique
    phantomRIdKey
    inferRName :: Name
    inferRName            = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "inferR")            Unique
    inferRIdKey

    -- data Kind = ...
    starKName, constraintKName :: Name
    starKName :: Name
    starKName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "starK")        Unique
    starKIdKey
    constraintKName :: Name
    constraintKName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "constraintK")  Unique
    constraintKIdKey

    -- data FamilyResultSig = ...
    noSigName, kindSigName, tyVarSigName :: Name
    noSigName :: Name
    noSigName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "noSig")    Unique
    noSigIdKey
    kindSigName :: Name
    kindSigName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "kindSig")  Unique
    kindSigIdKey
    tyVarSigName :: Name
    tyVarSigName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "tyVarSig") Unique
    tyVarSigIdKey

    -- data InjectivityAnn = ...
    injectivityAnnName :: Name
    injectivityAnnName :: Name
    injectivityAnnName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "injectivityAnn") Unique
    injectivityAnnIdKey

    -- data Callconv = ...
    cCallName, stdCallName, cApiCallName, primCallName, javaScriptCallName :: Name
    cCallName :: Name
    cCallName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "cCall") Unique
    cCallIdKey
    stdCallName :: Name
    stdCallName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "stdCall") Unique
    stdCallIdKey
    cApiCallName :: Name
    cApiCallName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "cApi") Unique
    cApiCallIdKey
    primCallName :: Name
    primCallName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "prim") Unique
    primCallIdKey
    javaScriptCallName :: Name
    javaScriptCallName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "javaScript") Unique
    javaScriptCallIdKey

    -- data Safety = ...
    unsafeName, safeName, interruptibleName :: Name
    unsafeName :: Name
    unsafeName     = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "unsafe") Unique
    unsafeIdKey
    safeName :: Name
    safeName       = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "safe") Unique
    safeIdKey
    interruptibleName :: Name
    interruptibleName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "interruptible") Unique
    interruptibleIdKey

    -- data RuleBndr = ...
    ruleVarName, typedRuleVarName :: Name
    ruleVarName :: Name
    ruleVarName      = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit (String
    "ruleVar"))      Unique
    ruleVarIdKey
    typedRuleVarName :: Name
    typedRuleVarName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit (String
    "typedRuleVar")) Unique
    typedRuleVarIdKey

    -- data FunDep = ...
    funDepName :: Name
    funDepName :: Name
    funDepName     = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "funDep") Unique
    funDepIdKey

    -- data TySynEqn = ...
    tySynEqnName :: Name
    tySynEqnName :: Name
    tySynEqnName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "tySynEqn") Unique
    tySynEqnIdKey

    -- data AnnTarget = ...
    valueAnnotationName, typeAnnotationName, moduleAnnotationName :: Name
    valueAnnotationName :: Name
    valueAnnotationName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "valueAnnotation")  Unique
    valueAnnotationIdKey
    typeAnnotationName :: Name
    typeAnnotationName   = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "typeAnnotation")   Unique
    typeAnnotationIdKey
    moduleAnnotationName :: Name
    moduleAnnotationName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "moduleAnnotation") Unique
    moduleAnnotationIdKey

    -- type DerivClause = ...
    derivClauseName :: Name
    derivClauseName :: Name
    derivClauseName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "derivClause") Unique
    derivClauseIdKey

    -- data DerivStrategy = ...
    stockStrategyName, anyclassStrategyName, newtypeStrategyName,
      viaStrategyName :: Name
    stockStrategyName :: Name
    stockStrategyName    = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "stockStrategy")    Unique
    stockStrategyIdKey
    anyclassStrategyName :: Name
    anyclassStrategyName = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "anyclassStrategy") Unique
    anyclassStrategyIdKey
    newtypeStrategyName :: Name
    newtypeStrategyName  = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "newtypeStrategy")  Unique
    newtypeStrategyIdKey
    viaStrategyName :: Name
    viaStrategyName      = FastString -> Unique -> Name
    libFun (String -> FastString
    fsLit String
    "viaStrategy")      Unique
    viaStrategyIdKey

    patQTyConName, expQTyConName, stmtTyConName,
        conTyConName, bangTypeTyConName,
        varBangTypeTyConName, typeQTyConName,
        decsQTyConName, ruleBndrTyConName, tySynEqnTyConName, roleTyConName,
        derivClauseTyConName, kindTyConName,
        tyVarBndrUnitTyConName, tyVarBndrSpecTyConName,
        derivStrategyTyConName :: Name
    -- These are only used for the types of top-level splices
    expQTyConName :: Name
    expQTyConName           = FastString -> Unique -> Name
    libTc (String -> FastString
    fsLit String
    "ExpQ")           Unique
    expQTyConKey
    decsQTyConName :: Name
    decsQTyConName          = FastString -> Unique -> Name
    libTc (String -> FastString
    fsLit String
    "DecsQ")          Unique
    decsQTyConKey  -- Q [Dec]
    typeQTyConName :: Name
    typeQTyConName          = FastString -> Unique -> Name
    libTc (String -> FastString
    fsLit String
    "TypeQ")          Unique
    typeQTyConKey
    patQTyConName :: Name
    patQTyConName           = FastString -> Unique -> Name
    libTc (String -> FastString
    fsLit String
    "PatQ")           Unique
    patQTyConKey

    -- These are used in GHC.HsToCore.Quote but always wrapped in a type variable
    stmtTyConName :: Name
    stmtTyConName           = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Stmt")            Unique
    stmtTyConKey
    conTyConName :: Name
    conTyConName            = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Con")             Unique
    conTyConKey
    bangTypeTyConName :: Name
    bangTypeTyConName       = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "BangType")      Unique
    bangTypeTyConKey
    varBangTypeTyConName :: Name
    varBangTypeTyConName    = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "VarBangType")     Unique
    varBangTypeTyConKey
    ruleBndrTyConName :: Name
    ruleBndrTyConName      = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "RuleBndr")      Unique
    ruleBndrTyConKey
    tySynEqnTyConName :: Name
    tySynEqnTyConName       = FastString -> Unique -> Name
    thTc  (String -> FastString
    fsLit String
    "TySynEqn")       Unique
    tySynEqnTyConKey
    roleTyConName :: Name
    roleTyConName           = FastString -> Unique -> Name
    libTc (String -> FastString
    fsLit String
    "Role")           Unique
    roleTyConKey
    derivClauseTyConName :: Name
    derivClauseTyConName   = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "DerivClause")   Unique
    derivClauseTyConKey
    kindTyConName :: Name
    kindTyConName          = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "Kind")          Unique
    kindTyConKey
    tyVarBndrUnitTyConName :: Name
    tyVarBndrUnitTyConName = FastString -> Unique -> Name
    libTc (String -> FastString
    fsLit String
    "TyVarBndrUnit") Unique
    tyVarBndrUnitTyConKey
    tyVarBndrSpecTyConName :: Name
    tyVarBndrSpecTyConName = FastString -> Unique -> Name
    libTc (String -> FastString
    fsLit String
    "TyVarBndrSpec") Unique
    tyVarBndrSpecTyConKey
    derivStrategyTyConName :: Name
    derivStrategyTyConName = FastString -> Unique -> Name
    thTc (String -> FastString
    fsLit String
    "DerivStrategy") Unique
    derivStrategyTyConKey

    -- quasiquoting
    quoteExpName, quotePatName, quoteDecName, quoteTypeName :: Name
    quoteExpName :: Name
    quoteExpName        = FastString -> Unique -> Name
    qqFun (String -> FastString
    fsLit String
    "quoteExp")  Unique
    quoteExpKey
    quotePatName :: Name
    quotePatName        = FastString -> Unique -> Name
    qqFun (String -> FastString
    fsLit String
    "quotePat")  Unique
    quotePatKey
    quoteDecName :: Name
    quoteDecName        = FastString -> Unique -> Name
    qqFun (String -> FastString
    fsLit String
    "quoteDec")  Unique
    quoteDecKey
    quoteTypeName :: Name
    quoteTypeName       = FastString -> Unique -> Name
    qqFun (String -> FastString
    fsLit String
    "quoteType") Unique
    quoteTypeKey

    -- data Inline = ...
    noInlineDataConName, inlineDataConName, inlinableDataConName, opaqueDataConName :: Name
    noInlineDataConName :: Name
    noInlineDataConName  = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "NoInline")  Unique
    noInlineDataConKey
    inlineDataConName :: Name
    inlineDataConName    = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "Inline")    Unique
    inlineDataConKey
    inlinableDataConName :: Name
    inlinableDataConName = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "Inlinable") Unique
    inlinableDataConKey
    opaqueDataConName :: Name
    opaqueDataConName    = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "Opaque")    Unique
    opaqueDataConKey

    -- data RuleMatch = ...
    conLikeDataConName, funLikeDataConName :: Name
    conLikeDataConName :: Name
    conLikeDataConName = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "ConLike") Unique
    conLikeDataConKey
    funLikeDataConName :: Name
    funLikeDataConName = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "FunLike") Unique
    funLikeDataConKey

    -- data Phases = ...
    allPhasesDataConName, fromPhaseDataConName, beforePhaseDataConName :: Name
    allPhasesDataConName :: Name
    allPhasesDataConName   = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "AllPhases")   Unique
    allPhasesDataConKey
    fromPhaseDataConName :: Name
    fromPhaseDataConName   = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "FromPhase")   Unique
    fromPhaseDataConKey
    beforePhaseDataConName :: Name
    beforePhaseDataConName = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "BeforePhase") Unique
    beforePhaseDataConKey

    -- data Overlap = ...
    overlappableDataConName,
      overlappingDataConName,
      overlapsDataConName,
      incoherentDataConName :: Name
    overlappableDataConName :: Name
    overlappableDataConName = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "Overlappable") Unique
    overlappableDataConKey
    overlappingDataConName :: Name
    overlappingDataConName  = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "Overlapping")  Unique
    overlappingDataConKey
    overlapsDataConName :: Name
    overlapsDataConName     = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "Overlaps")     Unique
    overlapsDataConKey
    incoherentDataConName :: Name
    incoherentDataConName   = FastString -> Unique -> Name
    thCon (String -> FastString
    fsLit String
    "Incoherent")   Unique
    incoherentDataConKey

    {- *********************************************************************
    *                                                                      *
                         Class keys
    *                                                                      *
    ********************************************************************* -}

    -- ClassUniques available: 200-299
    -- Check in GHC.Builtin.Names if you want to change this

    liftClassKey :: Unique
    liftClassKey :: Unique
    liftClassKey = Int -> Unique
    mkPreludeClassUnique Int
    200

    quoteClassKey :: Unique
    quoteClassKey :: Unique
    quoteClassKey = Int -> Unique
    mkPreludeClassUnique Int
    201

    {- *********************************************************************
    *                                                                      *
                         TyCon keys
    *                                                                      *
    ********************************************************************* -}

    -- TyConUniques available: 200-299
    -- Check in GHC.Builtin.Names if you want to change this

    expTyConKey, matchTyConKey, clauseTyConKey, qTyConKey, expQTyConKey,
        patTyConKey,
        stmtTyConKey, conTyConKey, typeQTyConKey, typeTyConKey,
        tyVarBndrUnitTyConKey, tyVarBndrSpecTyConKey,
        decTyConKey, bangTypeTyConKey, varBangTypeTyConKey,
        fieldExpTyConKey, fieldPatTyConKey, nameTyConKey, patQTyConKey,
        funDepTyConKey, predTyConKey,
        predQTyConKey, decsQTyConKey, ruleBndrTyConKey, tySynEqnTyConKey,
        roleTyConKey, codeTyConKey, injAnnTyConKey, kindTyConKey,
        overlapTyConKey, derivClauseTyConKey, derivStrategyTyConKey, decsTyConKey,
        modNameTyConKey  :: Unique
    expTyConKey :: Unique
    expTyConKey             = Int -> Unique
    mkPreludeTyConUnique Int
    200
    matchTyConKey :: Unique
    matchTyConKey           = Int -> Unique
    mkPreludeTyConUnique Int
    201
    clauseTyConKey :: Unique
    clauseTyConKey          = Int -> Unique
    mkPreludeTyConUnique Int
    202
    qTyConKey :: Unique
    qTyConKey               = Int -> Unique
    mkPreludeTyConUnique Int
    203
    expQTyConKey :: Unique
    expQTyConKey            = Int -> Unique
    mkPreludeTyConUnique Int
    204
    patTyConKey :: Unique
    patTyConKey             = Int -> Unique
    mkPreludeTyConUnique Int
    206
    stmtTyConKey :: Unique
    stmtTyConKey            = Int -> Unique
    mkPreludeTyConUnique Int
    209
    conTyConKey :: Unique
    conTyConKey             = Int -> Unique
    mkPreludeTyConUnique Int
    210
    typeQTyConKey :: Unique
    typeQTyConKey           = Int -> Unique
    mkPreludeTyConUnique Int
    211
    typeTyConKey :: Unique
    typeTyConKey            = Int -> Unique
    mkPreludeTyConUnique Int
    212
    decTyConKey :: Unique
    decTyConKey             = Int -> Unique
    mkPreludeTyConUnique Int
    213
    bangTypeTyConKey :: Unique
    bangTypeTyConKey        = Int -> Unique
    mkPreludeTyConUnique Int
    214
    varBangTypeTyConKey :: Unique
    varBangTypeTyConKey     = Int -> Unique
    mkPreludeTyConUnique Int
    215
    fieldExpTyConKey :: Unique
    fieldExpTyConKey        = Int -> Unique
    mkPreludeTyConUnique Int
    216
    fieldPatTyConKey :: Unique
    fieldPatTyConKey        = Int -> Unique
    mkPreludeTyConUnique Int
    217
    nameTyConKey :: Unique
    nameTyConKey            = Int -> Unique
    mkPreludeTyConUnique Int
    218
    patQTyConKey :: Unique
    patQTyConKey            = Int -> Unique
    mkPreludeTyConUnique Int
    219
    funDepTyConKey :: Unique
    funDepTyConKey          = Int -> Unique
    mkPreludeTyConUnique Int
    222
    predTyConKey :: Unique
    predTyConKey            = Int -> Unique
    mkPreludeTyConUnique Int
    223
    predQTyConKey :: Unique
    predQTyConKey           = Int -> Unique
    mkPreludeTyConUnique Int
    224
    tyVarBndrUnitTyConKey :: Unique
    tyVarBndrUnitTyConKey   = Int -> Unique
    mkPreludeTyConUnique Int
    225
    decsQTyConKey :: Unique
    decsQTyConKey           = Int -> Unique
    mkPreludeTyConUnique Int
    226
    ruleBndrTyConKey :: Unique
    ruleBndrTyConKey        = Int -> Unique
    mkPreludeTyConUnique Int
    227
    tySynEqnTyConKey :: Unique
    tySynEqnTyConKey        = Int -> Unique
    mkPreludeTyConUnique Int
    228
    roleTyConKey :: Unique
    roleTyConKey            = Int -> Unique
    mkPreludeTyConUnique Int
    229
    injAnnTyConKey :: Unique
    injAnnTyConKey          = Int -> Unique
    mkPreludeTyConUnique Int
    231
    kindTyConKey :: Unique
    kindTyConKey            = Int -> Unique
    mkPreludeTyConUnique Int
    232
    overlapTyConKey :: Unique
    overlapTyConKey         = Int -> Unique
    mkPreludeTyConUnique Int
    233
    derivClauseTyConKey :: Unique
    derivClauseTyConKey     = Int -> Unique
    mkPreludeTyConUnique Int
    234
    derivStrategyTyConKey :: Unique
    derivStrategyTyConKey   = Int -> Unique
    mkPreludeTyConUnique Int
    235
    decsTyConKey :: Unique
    decsTyConKey            = Int -> Unique
    mkPreludeTyConUnique Int
    236
    tyVarBndrSpecTyConKey :: Unique
    tyVarBndrSpecTyConKey   = Int -> Unique
    mkPreludeTyConUnique Int
    237
    codeTyConKey :: Unique
    codeTyConKey            = Int -> Unique
    mkPreludeTyConUnique Int
    238
    modNameTyConKey :: Unique
    modNameTyConKey         = Int -> Unique
    mkPreludeTyConUnique Int
    239

    {- *********************************************************************
    *                                                                      *
                         DataCon keys
    *                                                                      *
    ********************************************************************* -}

    -- DataConUniques available: 100-150
    -- If you want to change this, make sure you check in GHC.Builtin.Names

    -- data Inline = ...
    noInlineDataConKey, inlineDataConKey, inlinableDataConKey, opaqueDataConKey :: Unique
    noInlineDataConKey :: Unique
    noInlineDataConKey  = Int -> Unique
    mkPreludeDataConUnique Int
    200
    inlineDataConKey :: Unique
    inlineDataConKey    = Int -> Unique
    mkPreludeDataConUnique Int
    201
    inlinableDataConKey :: Unique
    inlinableDataConKey = Int -> Unique
    mkPreludeDataConUnique Int
    202
    opaqueDataConKey :: Unique
    opaqueDataConKey    = Int -> Unique
    mkPreludeDataConUnique Int
    203

    -- data RuleMatch = ...
    conLikeDataConKey, funLikeDataConKey :: Unique
    conLikeDataConKey :: Unique
    conLikeDataConKey = Int -> Unique
    mkPreludeDataConUnique Int
    204
    funLikeDataConKey :: Unique
    funLikeDataConKey = Int -> Unique
    mkPreludeDataConUnique Int
    205

    -- data Phases = ...
    allPhasesDataConKey, fromPhaseDataConKey, beforePhaseDataConKey :: Unique
    allPhasesDataConKey :: Unique
    allPhasesDataConKey   = Int -> Unique
    mkPreludeDataConUnique Int
    206
    fromPhaseDataConKey :: Unique
    fromPhaseDataConKey   = Int -> Unique
    mkPreludeDataConUnique Int
    207
    beforePhaseDataConKey :: Unique
    beforePhaseDataConKey = Int -> Unique
    mkPreludeDataConUnique Int
    208

    -- data Overlap = ..
    overlappableDataConKey,
      overlappingDataConKey,
      overlapsDataConKey,
      incoherentDataConKey :: Unique
    overlappableDataConKey :: Unique
    overlappableDataConKey = Int -> Unique
    mkPreludeDataConUnique Int
    209
    overlappingDataConKey :: Unique
    overlappingDataConKey  = Int -> Unique
    mkPreludeDataConUnique Int
    210
    overlapsDataConKey :: Unique
    overlapsDataConKey     = Int -> Unique
    mkPreludeDataConUnique Int
    211
    incoherentDataConKey :: Unique
    incoherentDataConKey   = Int -> Unique
    mkPreludeDataConUnique Int
    212

    {- *********************************************************************
    *                                                                      *
                         Id keys
    *                                                                      *
    ********************************************************************* -}

    -- IdUniques available: 200-499
    -- If you want to change this, make sure you check in GHC.Builtin.Names

    returnQIdKey, bindQIdKey, sequenceQIdKey, liftIdKey, newNameIdKey,
        mkNameIdKey, mkNameG_vIdKey, mkNameG_dIdKey, mkNameG_tcIdKey,
        mkNameLIdKey, mkNameSIdKey, unTypeIdKey, unTypeCodeIdKey,
        unsafeCodeCoerceIdKey, liftTypedIdKey, mkModNameIdKey :: Unique
    returnQIdKey :: Unique
    returnQIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    200
    bindQIdKey :: Unique
    bindQIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    201
    sequenceQIdKey :: Unique
    sequenceQIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    202
    liftIdKey :: Unique
    liftIdKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    203
    newNameIdKey :: Unique
    newNameIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    204
    mkNameIdKey :: Unique
    mkNameIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    205
    mkNameG_vIdKey :: Unique
    mkNameG_vIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    206
    mkNameG_dIdKey :: Unique
    mkNameG_dIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    207
    mkNameG_tcIdKey :: Unique
    mkNameG_tcIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    208
    mkNameLIdKey :: Unique
    mkNameLIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    209
    mkNameSIdKey :: Unique
    mkNameSIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    210
    unTypeIdKey :: Unique
    unTypeIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    211
    unTypeCodeIdKey :: Unique
    unTypeCodeIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    212
    liftTypedIdKey :: Unique
    liftTypedIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    214
    mkModNameIdKey :: Unique
    mkModNameIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    215
    unsafeCodeCoerceIdKey :: Unique
    unsafeCodeCoerceIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    216

    -- data Lit = ...
    charLIdKey, stringLIdKey, integerLIdKey, intPrimLIdKey, wordPrimLIdKey,
        floatPrimLIdKey, doublePrimLIdKey, rationalLIdKey, stringPrimLIdKey,
        charPrimLIdKey:: Unique
    charLIdKey :: Unique
    charLIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    220
    stringLIdKey :: Unique
    stringLIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    221
    integerLIdKey :: Unique
    integerLIdKey     = Int -> Unique
    mkPreludeMiscIdUnique Int
    222
    intPrimLIdKey :: Unique
    intPrimLIdKey     = Int -> Unique
    mkPreludeMiscIdUnique Int
    223
    wordPrimLIdKey :: Unique
    wordPrimLIdKey    = Int -> Unique
    mkPreludeMiscIdUnique Int
    224
    floatPrimLIdKey :: Unique
    floatPrimLIdKey   = Int -> Unique
    mkPreludeMiscIdUnique Int
    225
    doublePrimLIdKey :: Unique
    doublePrimLIdKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    226
    rationalLIdKey :: Unique
    rationalLIdKey    = Int -> Unique
    mkPreludeMiscIdUnique Int
    227
    stringPrimLIdKey :: Unique
    stringPrimLIdKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    228
    charPrimLIdKey :: Unique
    charPrimLIdKey    = Int -> Unique
    mkPreludeMiscIdUnique Int
    229

    liftStringIdKey :: Unique
    liftStringIdKey :: Unique
    liftStringIdKey     = Int -> Unique
    mkPreludeMiscIdUnique Int
    230

    -- data Pat = ...
    litPIdKey, varPIdKey, tupPIdKey, unboxedTupPIdKey, unboxedSumPIdKey, conPIdKey,
      infixPIdKey, tildePIdKey, bangPIdKey, asPIdKey, wildPIdKey, recPIdKey,
      listPIdKey, sigPIdKey, viewPIdKey :: Unique
    litPIdKey :: Unique
    litPIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    240
    varPIdKey :: Unique
    varPIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    241
    tupPIdKey :: Unique
    tupPIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    242
    unboxedTupPIdKey :: Unique
    unboxedTupPIdKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    243
    unboxedSumPIdKey :: Unique
    unboxedSumPIdKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    244
    conPIdKey :: Unique
    conPIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    245
    infixPIdKey :: Unique
    infixPIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    246
    tildePIdKey :: Unique
    tildePIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    247
    bangPIdKey :: Unique
    bangPIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    248
    asPIdKey :: Unique
    asPIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    249
    wildPIdKey :: Unique
    wildPIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    250
    recPIdKey :: Unique
    recPIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    251
    listPIdKey :: Unique
    listPIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    252
    sigPIdKey :: Unique
    sigPIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    253
    viewPIdKey :: Unique
    viewPIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    254

    -- type FieldPat = ...
    fieldPatIdKey :: Unique
    fieldPatIdKey :: Unique
    fieldPatIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    260

    -- data Match = ...
    matchIdKey :: Unique
    matchIdKey :: Unique
    matchIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    261

    -- data Clause = ...
    clauseIdKey :: Unique
    clauseIdKey :: Unique
    clauseIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    262

    -- data Exp = ...
    varEIdKey, conEIdKey, litEIdKey, appEIdKey, appTypeEIdKey, infixEIdKey,
        infixAppIdKey, sectionLIdKey, sectionRIdKey, lamEIdKey, lamCaseEIdKey,
        lamCasesEIdKey, tupEIdKey, unboxedTupEIdKey, unboxedSumEIdKey, condEIdKey,
        multiIfEIdKey, letEIdKey, caseEIdKey, doEIdKey, compEIdKey,
        fromEIdKey, fromThenEIdKey, fromToEIdKey, fromThenToEIdKey,
        listEIdKey, sigEIdKey, recConEIdKey, recUpdEIdKey, staticEIdKey,
        unboundVarEIdKey, labelEIdKey, implicitParamVarEIdKey, mdoEIdKey,
        getFieldEIdKey, projectionEIdKey :: Unique
    varEIdKey :: Unique
    varEIdKey              = Int -> Unique
    mkPreludeMiscIdUnique Int
    270
    conEIdKey :: Unique
    conEIdKey              = Int -> Unique
    mkPreludeMiscIdUnique Int
    271
    litEIdKey :: Unique
    litEIdKey              = Int -> Unique
    mkPreludeMiscIdUnique Int
    272
    appEIdKey :: Unique
    appEIdKey              = Int -> Unique
    mkPreludeMiscIdUnique Int
    273
    appTypeEIdKey :: Unique
    appTypeEIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    274
    infixEIdKey :: Unique
    infixEIdKey            = Int -> Unique
    mkPreludeMiscIdUnique Int
    275
    infixAppIdKey :: Unique
    infixAppIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    276
    sectionLIdKey :: Unique
    sectionLIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    277
    sectionRIdKey :: Unique
    sectionRIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    278
    lamEIdKey :: Unique
    lamEIdKey              = Int -> Unique
    mkPreludeMiscIdUnique Int
    279
    lamCaseEIdKey :: Unique
    lamCaseEIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    280
    lamCasesEIdKey :: Unique
    lamCasesEIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    281
    tupEIdKey :: Unique
    tupEIdKey              = Int -> Unique
    mkPreludeMiscIdUnique Int
    282
    unboxedTupEIdKey :: Unique
    unboxedTupEIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    283
    unboxedSumEIdKey :: Unique
    unboxedSumEIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    284
    condEIdKey :: Unique
    condEIdKey             = Int -> Unique
    mkPreludeMiscIdUnique Int
    285
    multiIfEIdKey :: Unique
    multiIfEIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    286
    letEIdKey :: Unique
    letEIdKey              = Int -> Unique
    mkPreludeMiscIdUnique Int
    287
    caseEIdKey :: Unique
    caseEIdKey             = Int -> Unique
    mkPreludeMiscIdUnique Int
    288
    doEIdKey :: Unique
    doEIdKey               = Int -> Unique
    mkPreludeMiscIdUnique Int
    289
    compEIdKey :: Unique
    compEIdKey             = Int -> Unique
    mkPreludeMiscIdUnique Int
    290
    fromEIdKey :: Unique
    fromEIdKey             = Int -> Unique
    mkPreludeMiscIdUnique Int
    291
    fromThenEIdKey :: Unique
    fromThenEIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    292
    fromToEIdKey :: Unique
    fromToEIdKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    293
    fromThenToEIdKey :: Unique
    fromThenToEIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    294
    listEIdKey :: Unique
    listEIdKey             = Int -> Unique
    mkPreludeMiscIdUnique Int
    295
    sigEIdKey :: Unique
    sigEIdKey              = Int -> Unique
    mkPreludeMiscIdUnique Int
    296
    recConEIdKey :: Unique
    recConEIdKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    297
    recUpdEIdKey :: Unique
    recUpdEIdKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    298
    staticEIdKey :: Unique
    staticEIdKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    299
    unboundVarEIdKey :: Unique
    unboundVarEIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    300
    labelEIdKey :: Unique
    labelEIdKey            = Int -> Unique
    mkPreludeMiscIdUnique Int
    301
    implicitParamVarEIdKey :: Unique
    implicitParamVarEIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    302
    mdoEIdKey :: Unique
    mdoEIdKey              = Int -> Unique
    mkPreludeMiscIdUnique Int
    303
    getFieldEIdKey :: Unique
    getFieldEIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    304
    projectionEIdKey :: Unique
    projectionEIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    305

    -- type FieldExp = ...
    fieldExpIdKey :: Unique
    fieldExpIdKey :: Unique
    fieldExpIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    306

    -- data Body = ...
    guardedBIdKey, normalBIdKey :: Unique
    guardedBIdKey :: Unique
    guardedBIdKey     = Int -> Unique
    mkPreludeMiscIdUnique Int
    307
    normalBIdKey :: Unique
    normalBIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    308

    -- data Guard = ...
    normalGEIdKey, patGEIdKey :: Unique
    normalGEIdKey :: Unique
    normalGEIdKey     = Int -> Unique
    mkPreludeMiscIdUnique Int
    309
    patGEIdKey :: Unique
    patGEIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    310

    -- data Stmt = ...
    bindSIdKey, letSIdKey, noBindSIdKey, parSIdKey, recSIdKey :: Unique
    bindSIdKey :: Unique
    bindSIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    311
    letSIdKey :: Unique
    letSIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    312
    noBindSIdKey :: Unique
    noBindSIdKey     = Int -> Unique
    mkPreludeMiscIdUnique Int
    313
    parSIdKey :: Unique
    parSIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    314
    recSIdKey :: Unique
    recSIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    315

    -- data Dec = ...
    funDIdKey, valDIdKey, dataDIdKey, newtypeDIdKey, tySynDIdKey, classDIdKey,
        instanceWithOverlapDIdKey, instanceDIdKey, sigDIdKey, forImpDIdKey,
        pragInlDIdKey, pragSpecDIdKey, pragSpecInlDIdKey, pragSpecInstDIdKey,
        pragRuleDIdKey, pragAnnDIdKey, defaultSigDIdKey, dataFamilyDIdKey,
        openTypeFamilyDIdKey, closedTypeFamilyDIdKey, dataInstDIdKey,
        newtypeInstDIdKey, tySynInstDIdKey, standaloneDerivWithStrategyDIdKey,
        infixLDIdKey, infixRDIdKey, infixNDIdKey, roleAnnotDIdKey, patSynDIdKey,
        patSynSigDIdKey, pragCompleteDIdKey, implicitParamBindDIdKey,
        kiSigDIdKey, defaultDIdKey :: Unique
    funDIdKey :: Unique
    funDIdKey                         = Int -> Unique
    mkPreludeMiscIdUnique Int
    320
    valDIdKey :: Unique
    valDIdKey                         = Int -> Unique
    mkPreludeMiscIdUnique Int
    321
    dataDIdKey :: Unique
    dataDIdKey                        = Int -> Unique
    mkPreludeMiscIdUnique Int
    322
    newtypeDIdKey :: Unique
    newtypeDIdKey                     = Int -> Unique
    mkPreludeMiscIdUnique Int
    323
    tySynDIdKey :: Unique
    tySynDIdKey                       = Int -> Unique
    mkPreludeMiscIdUnique Int
    324
    classDIdKey :: Unique
    classDIdKey                       = Int -> Unique
    mkPreludeMiscIdUnique Int
    325
    instanceWithOverlapDIdKey :: Unique
    instanceWithOverlapDIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    326
    instanceDIdKey :: Unique
    instanceDIdKey                    = Int -> Unique
    mkPreludeMiscIdUnique Int
    327
    sigDIdKey :: Unique
    sigDIdKey                         = Int -> Unique
    mkPreludeMiscIdUnique Int
    328
    forImpDIdKey :: Unique
    forImpDIdKey                      = Int -> Unique
    mkPreludeMiscIdUnique Int
    329
    pragInlDIdKey :: Unique
    pragInlDIdKey                     = Int -> Unique
    mkPreludeMiscIdUnique Int
    330
    pragSpecDIdKey :: Unique
    pragSpecDIdKey                    = Int -> Unique
    mkPreludeMiscIdUnique Int
    331
    pragSpecInlDIdKey :: Unique
    pragSpecInlDIdKey                 = Int -> Unique
    mkPreludeMiscIdUnique Int
    332
    pragSpecInstDIdKey :: Unique
    pragSpecInstDIdKey                = Int -> Unique
    mkPreludeMiscIdUnique Int
    333
    pragRuleDIdKey :: Unique
    pragRuleDIdKey                    = Int -> Unique
    mkPreludeMiscIdUnique Int
    334
    pragAnnDIdKey :: Unique
    pragAnnDIdKey                     = Int -> Unique
    mkPreludeMiscIdUnique Int
    335
    dataFamilyDIdKey :: Unique
    dataFamilyDIdKey                  = Int -> Unique
    mkPreludeMiscIdUnique Int
    336
    openTypeFamilyDIdKey :: Unique
    openTypeFamilyDIdKey              = Int -> Unique
    mkPreludeMiscIdUnique Int
    337
    dataInstDIdKey :: Unique
    dataInstDIdKey                    = Int -> Unique
    mkPreludeMiscIdUnique Int
    338
    newtypeInstDIdKey :: Unique
    newtypeInstDIdKey                 = Int -> Unique
    mkPreludeMiscIdUnique Int
    339
    tySynInstDIdKey :: Unique
    tySynInstDIdKey                   = Int -> Unique
    mkPreludeMiscIdUnique Int
    340
    closedTypeFamilyDIdKey :: Unique
    closedTypeFamilyDIdKey            = Int -> Unique
    mkPreludeMiscIdUnique Int
    341
    infixLDIdKey :: Unique
    infixLDIdKey                      = Int -> Unique
    mkPreludeMiscIdUnique Int
    342
    infixRDIdKey :: Unique
    infixRDIdKey                      = Int -> Unique
    mkPreludeMiscIdUnique Int
    343
    infixNDIdKey :: Unique
    infixNDIdKey                      = Int -> Unique
    mkPreludeMiscIdUnique Int
    344
    roleAnnotDIdKey :: Unique
    roleAnnotDIdKey                   = Int -> Unique
    mkPreludeMiscIdUnique Int
    345
    standaloneDerivWithStrategyDIdKey :: Unique
    standaloneDerivWithStrategyDIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    346
    defaultSigDIdKey :: Unique
    defaultSigDIdKey                  = Int -> Unique
    mkPreludeMiscIdUnique Int
    347
    patSynDIdKey :: Unique
    patSynDIdKey                      = Int -> Unique
    mkPreludeMiscIdUnique Int
    348
    patSynSigDIdKey :: Unique
    patSynSigDIdKey                   = Int -> Unique
    mkPreludeMiscIdUnique Int
    349
    pragCompleteDIdKey :: Unique
    pragCompleteDIdKey                = Int -> Unique
    mkPreludeMiscIdUnique Int
    350
    implicitParamBindDIdKey :: Unique
    implicitParamBindDIdKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    351
    kiSigDIdKey :: Unique
    kiSigDIdKey                       = Int -> Unique
    mkPreludeMiscIdUnique Int
    352
    defaultDIdKey :: Unique
    defaultDIdKey                     = Int -> Unique
    mkPreludeMiscIdUnique Int
    353

    -- type Cxt = ...
    cxtIdKey :: Unique
    cxtIdKey :: Unique
    cxtIdKey               = Int -> Unique
    mkPreludeMiscIdUnique Int
    361

    -- data SourceUnpackedness = ...
    noSourceUnpackednessKey, sourceNoUnpackKey, sourceUnpackKey :: Unique
    noSourceUnpackednessKey :: Unique
    noSourceUnpackednessKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    362
    sourceNoUnpackKey :: Unique
    sourceNoUnpackKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    363
    sourceUnpackKey :: Unique
    sourceUnpackKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    364

    -- data SourceStrictness = ...
    noSourceStrictnessKey, sourceLazyKey, sourceStrictKey :: Unique
    noSourceStrictnessKey :: Unique
    noSourceStrictnessKey   = Int -> Unique
    mkPreludeMiscIdUnique Int
    365
    sourceLazyKey :: Unique
    sourceLazyKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    366
    sourceStrictKey :: Unique
    sourceStrictKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    367

    -- data Con = ...
    normalCIdKey, recCIdKey, infixCIdKey, forallCIdKey, gadtCIdKey,
      recGadtCIdKey :: Unique
    normalCIdKey :: Unique
    normalCIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    368
    recCIdKey :: Unique
    recCIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    369
    infixCIdKey :: Unique
    infixCIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    370
    forallCIdKey :: Unique
    forallCIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    371
    gadtCIdKey :: Unique
    gadtCIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    372
    recGadtCIdKey :: Unique
    recGadtCIdKey     = Int -> Unique
    mkPreludeMiscIdUnique Int
    373

    -- data Bang = ...
    bangIdKey :: Unique
    bangIdKey :: Unique
    bangIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    374

    -- type BangType = ...
    bangTKey :: Unique
    bangTKey :: Unique
    bangTKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    375

    -- type VarBangType = ...
    varBangTKey :: Unique
    varBangTKey :: Unique
    varBangTKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    376

    -- data PatSynDir = ...
    unidirPatSynIdKey, implBidirPatSynIdKey, explBidirPatSynIdKey :: Unique
    unidirPatSynIdKey :: Unique
    unidirPatSynIdKey    = Int -> Unique
    mkPreludeMiscIdUnique Int
    377
    implBidirPatSynIdKey :: Unique
    implBidirPatSynIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    378
    explBidirPatSynIdKey :: Unique
    explBidirPatSynIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    379

    -- data PatSynArgs = ...
    prefixPatSynIdKey, infixPatSynIdKey, recordPatSynIdKey :: Unique
    prefixPatSynIdKey :: Unique
    prefixPatSynIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    380
    infixPatSynIdKey :: Unique
    infixPatSynIdKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    381
    recordPatSynIdKey :: Unique
    recordPatSynIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    382

    -- data Type = ...
    forallTIdKey, forallVisTIdKey, varTIdKey, conTIdKey, tupleTIdKey,
        unboxedTupleTIdKey, unboxedSumTIdKey, arrowTIdKey, listTIdKey, appTIdKey,
        appKindTIdKey, sigTIdKey, equalityTIdKey, litTIdKey, promotedTIdKey,
        promotedTupleTIdKey, promotedNilTIdKey, promotedConsTIdKey,
        wildCardTIdKey, implicitParamTIdKey, infixTIdKey :: Unique
    forallTIdKey :: Unique
    forallTIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    390
    forallVisTIdKey :: Unique
    forallVisTIdKey     = Int -> Unique
    mkPreludeMiscIdUnique Int
    391
    varTIdKey :: Unique
    varTIdKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    392
    conTIdKey :: Unique
    conTIdKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    393
    tupleTIdKey :: Unique
    tupleTIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    394
    unboxedTupleTIdKey :: Unique
    unboxedTupleTIdKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    395
    unboxedSumTIdKey :: Unique
    unboxedSumTIdKey    = Int -> Unique
    mkPreludeMiscIdUnique Int
    396
    arrowTIdKey :: Unique
    arrowTIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    397
    listTIdKey :: Unique
    listTIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    398
    appTIdKey :: Unique
    appTIdKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    399
    appKindTIdKey :: Unique
    appKindTIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    400
    sigTIdKey :: Unique
    sigTIdKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    401
    equalityTIdKey :: Unique
    equalityTIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    402
    litTIdKey :: Unique
    litTIdKey           = Int -> Unique
    mkPreludeMiscIdUnique Int
    403
    promotedTIdKey :: Unique
    promotedTIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    404
    promotedTupleTIdKey :: Unique
    promotedTupleTIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    405
    promotedNilTIdKey :: Unique
    promotedNilTIdKey   = Int -> Unique
    mkPreludeMiscIdUnique Int
    406
    promotedConsTIdKey :: Unique
    promotedConsTIdKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    407
    wildCardTIdKey :: Unique
    wildCardTIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    408
    implicitParamTIdKey :: Unique
    implicitParamTIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    409
    infixTIdKey :: Unique
    infixTIdKey         = Int -> Unique
    mkPreludeMiscIdUnique Int
    410

    -- data TyLit = ...
    numTyLitIdKey, strTyLitIdKey, charTyLitIdKey :: Unique
    numTyLitIdKey :: Unique
    numTyLitIdKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    411
    strTyLitIdKey :: Unique
    strTyLitIdKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    412
    charTyLitIdKey :: Unique
    charTyLitIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    413

    -- data TyVarBndr = ...
    plainTVIdKey, kindedTVIdKey :: Unique
    plainTVIdKey :: Unique
    plainTVIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    414
    kindedTVIdKey :: Unique
    kindedTVIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    415

    plainInvisTVIdKey, kindedInvisTVIdKey :: Unique
    plainInvisTVIdKey :: Unique
    plainInvisTVIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    482
    kindedInvisTVIdKey :: Unique
    kindedInvisTVIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    483

    -- data Role = ...
    nominalRIdKey, representationalRIdKey, phantomRIdKey, inferRIdKey :: Unique
    nominalRIdKey :: Unique
    nominalRIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    416
    representationalRIdKey :: Unique
    representationalRIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    417
    phantomRIdKey :: Unique
    phantomRIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    418
    inferRIdKey :: Unique
    inferRIdKey            = Int -> Unique
    mkPreludeMiscIdUnique Int
    419

    -- data Kind = ...
    starKIdKey, constraintKIdKey :: Unique
    starKIdKey :: Unique
    starKIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    425
    constraintKIdKey :: Unique
    constraintKIdKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    426

    -- data FamilyResultSig = ...
    noSigIdKey, kindSigIdKey, tyVarSigIdKey :: Unique
    noSigIdKey :: Unique
    noSigIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    427
    kindSigIdKey :: Unique
    kindSigIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    428
    tyVarSigIdKey :: Unique
    tyVarSigIdKey     = Int -> Unique
    mkPreludeMiscIdUnique Int
    429

    -- data InjectivityAnn = ...
    injectivityAnnIdKey :: Unique
    injectivityAnnIdKey :: Unique
    injectivityAnnIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    430

    -- data Callconv = ...
    cCallIdKey, stdCallIdKey, cApiCallIdKey, primCallIdKey,
      javaScriptCallIdKey :: Unique
    cCallIdKey :: Unique
    cCallIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    431
    stdCallIdKey :: Unique
    stdCallIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    432
    cApiCallIdKey :: Unique
    cApiCallIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    433
    primCallIdKey :: Unique
    primCallIdKey       = Int -> Unique
    mkPreludeMiscIdUnique Int
    434
    javaScriptCallIdKey :: Unique
    javaScriptCallIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    435

    -- data Safety = ...
    unsafeIdKey, safeIdKey, interruptibleIdKey :: Unique
    unsafeIdKey :: Unique
    unsafeIdKey        = Int -> Unique
    mkPreludeMiscIdUnique Int
    440
    safeIdKey :: Unique
    safeIdKey          = Int -> Unique
    mkPreludeMiscIdUnique Int
    441
    interruptibleIdKey :: Unique
    interruptibleIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    442

    -- data FunDep = ...
    funDepIdKey :: Unique
    funDepIdKey :: Unique
    funDepIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    445

    -- mulArrow
    mulArrowTIdKey :: Unique
    mulArrowTIdKey :: Unique
    mulArrowTIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    446

    -- data TySynEqn = ...
    tySynEqnIdKey :: Unique
    tySynEqnIdKey :: Unique
    tySynEqnIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    460

    -- quasiquoting
    quoteExpKey, quotePatKey, quoteDecKey, quoteTypeKey :: Unique
    quoteExpKey :: Unique
    quoteExpKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    470
    quotePatKey :: Unique
    quotePatKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    471
    quoteDecKey :: Unique
    quoteDecKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    472
    quoteTypeKey :: Unique
    quoteTypeKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    473

    -- data RuleBndr = ...
    ruleVarIdKey, typedRuleVarIdKey :: Unique
    ruleVarIdKey :: Unique
    ruleVarIdKey      = Int -> Unique
    mkPreludeMiscIdUnique Int
    480
    typedRuleVarIdKey :: Unique
    typedRuleVarIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    481

    -- data AnnTarget = ...
    valueAnnotationIdKey, typeAnnotationIdKey, moduleAnnotationIdKey :: Unique
    valueAnnotationIdKey :: Unique
    valueAnnotationIdKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    490
    typeAnnotationIdKey :: Unique
    typeAnnotationIdKey   = Int -> Unique
    mkPreludeMiscIdUnique Int
    491
    moduleAnnotationIdKey :: Unique
    moduleAnnotationIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    492

    -- type DerivPred = ...
    derivClauseIdKey :: Unique
    derivClauseIdKey :: Unique
    derivClauseIdKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    493

    -- data DerivStrategy = ...
    stockStrategyIdKey, anyclassStrategyIdKey, newtypeStrategyIdKey,
      viaStrategyIdKey :: Unique
    stockStrategyIdKey :: Unique
    stockStrategyIdKey    = Int -> Unique
    mkPreludeDataConUnique Int
    494
    anyclassStrategyIdKey :: Unique
    anyclassStrategyIdKey = Int -> Unique
    mkPreludeDataConUnique Int
    495
    newtypeStrategyIdKey :: Unique
    newtypeStrategyIdKey  = Int -> Unique
    mkPreludeDataConUnique Int
    496
    viaStrategyIdKey :: Unique
    viaStrategyIdKey      = Int -> Unique
    mkPreludeDataConUnique Int
    497

    -- data Specificity = ...
    specifiedSpecKey, inferredSpecKey :: Unique
    specifiedSpecKey :: Unique
    specifiedSpecKey = Int -> Unique
    mkPreludeMiscIdUnique Int
    498
    inferredSpecKey :: Unique
    inferredSpecKey  = Int -> Unique
    mkPreludeMiscIdUnique Int
    499

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

    lift_RDR, liftTyped_RDR, mkNameG_dRDR, mkNameG_vRDR, unsafeCodeCoerce_RDR :: RdrName
    lift_RDR :: RdrName
    lift_RDR     = Name -> RdrName
    nameRdrName Name
    liftName
    liftTyped_RDR :: RdrName
    liftTyped_RDR = Name -> RdrName
    nameRdrName Name
    liftTypedName
    unsafeCodeCoerce_RDR :: RdrName
    unsafeCodeCoerce_RDR = Name -> RdrName
    nameRdrName Name
    unsafeCodeCoerceName
    mkNameG_dRDR :: RdrName
    mkNameG_dRDR = Name -> RdrName
    nameRdrName Name
    mkNameG_dName
    mkNameG_vRDR :: RdrName
    mkNameG_vRDR = Name -> RdrName
    nameRdrName Name
    mkNameG_vName

    -- data Exp = ...
    conE_RDR, litE_RDR, appE_RDR, infixApp_RDR :: RdrName
    conE_RDR :: RdrName
    conE_RDR     = Name -> RdrName
    nameRdrName Name
    conEName
    litE_RDR :: RdrName
    litE_RDR     = Name -> RdrName
    nameRdrName Name
    litEName
    appE_RDR :: RdrName
    appE_RDR     = Name -> RdrName
    nameRdrName Name
    appEName
    infixApp_RDR :: RdrName
    infixApp_RDR = Name -> RdrName
    nameRdrName Name
    infixAppName

    -- data Lit = ...
    stringL_RDR, intPrimL_RDR, wordPrimL_RDR, floatPrimL_RDR,
        doublePrimL_RDR, stringPrimL_RDR, charPrimL_RDR :: RdrName
    stringL_RDR :: RdrName
    stringL_RDR     = Name -> RdrName
    nameRdrName Name
    stringLName
    intPrimL_RDR :: RdrName
    intPrimL_RDR    = Name -> RdrName
    nameRdrName Name
    intPrimLName
    wordPrimL_RDR :: RdrName
    wordPrimL_RDR   = Name -> RdrName
    nameRdrName Name
    wordPrimLName
    floatPrimL_RDR :: RdrName
    floatPrimL_RDR  = Name -> RdrName
    nameRdrName Name
    floatPrimLName
    doublePrimL_RDR :: RdrName
    doublePrimL_RDR = Name -> RdrName
    nameRdrName Name
    doublePrimLName
    stringPrimL_RDR :: RdrName
    stringPrimL_RDR = Name -> RdrName
    nameRdrName Name
    stringPrimLName
    charPrimL_RDR :: RdrName
    charPrimL_RDR   = Name -> RdrName
    nameRdrName Name
    charPrimLName