1-- %************************************************************************
2-- %*                                                                   *
3--              The known-key names for Template Haskell
4-- %*                                                                   *
5-- %************************************************************************
6
7module THNames where
8
9import GhcPrelude ()
10
11import PrelNames( mk_known_key_name )
12import Module( Module, mkModuleNameFS, mkModule, thUnitId )
13import Name( Name )
14import OccName( tcName, clsName, dataName, varName )
15import RdrName( RdrName, nameRdrName )
16import Unique
17import FastString
18
19-- To add a name, do three things
20--
21--  1) Allocate a key
22--  2) Make a "Name"
23--  3) Add the name to templateHaskellNames
24
25templateHaskellNames :: [Name]
26-- The names that are implicitly mentioned by ``bracket''
27-- Should stay in sync with the import list of DsMeta
28
29templateHaskellNames = [
30    returnQName, bindQName, sequenceQName, newNameName, liftName, liftTypedName,
31    mkNameName, mkNameG_vName, mkNameG_dName, mkNameG_tcName, mkNameLName,
32    mkNameSName,
33    liftStringName,
34    unTypeName,
35    unTypeQName,
36    unsafeTExpCoerceName,
37
38    -- Lit
39    charLName, stringLName, integerLName, intPrimLName, wordPrimLName,
40    floatPrimLName, doublePrimLName, rationalLName, stringPrimLName,
41    charPrimLName,
42    -- Pat
43    litPName, varPName, tupPName, unboxedTupPName, unboxedSumPName,
44    conPName, tildePName, bangPName, infixPName,
45    asPName, wildPName, recPName, listPName, sigPName, viewPName,
46    -- FieldPat
47    fieldPatName,
48    -- Match
49    matchName,
50    -- Clause
51    clauseName,
52    -- Exp
53    varEName, conEName, litEName, appEName, appTypeEName, infixEName,
54    infixAppName, sectionLName, sectionRName, lamEName, lamCaseEName,
55    tupEName, unboxedTupEName, unboxedSumEName,
56    condEName, multiIfEName, letEName, caseEName, doEName, mdoEName, compEName,
57    fromEName, fromThenEName, fromToEName, fromThenToEName,
58    listEName, sigEName, recConEName, recUpdEName, staticEName, unboundVarEName,
59    labelEName, implicitParamVarEName,
60    -- FieldExp
61    fieldExpName,
62    -- Body
63    guardedBName, normalBName,
64    -- Guard
65    normalGEName, patGEName,
66    -- Stmt
67    bindSName, letSName, noBindSName, parSName, recSName,
68    -- Dec
69    funDName, valDName, dataDName, newtypeDName, tySynDName,
70    classDName, instanceWithOverlapDName,
71    standaloneDerivWithStrategyDName, sigDName, kiSigDName, forImpDName,
72    pragInlDName, pragSpecDName, pragSpecInlDName, pragSpecInstDName,
73    pragRuleDName, pragCompleteDName, pragAnnDName, defaultSigDName,
74    dataFamilyDName, openTypeFamilyDName, closedTypeFamilyDName,
75    dataInstDName, newtypeInstDName, tySynInstDName,
76    infixLDName, infixRDName, infixNDName,
77    roleAnnotDName, patSynDName, patSynSigDName,
78    implicitParamBindDName,
79    -- Cxt
80    cxtName,
81
82    -- SourceUnpackedness
83    noSourceUnpackednessName, sourceNoUnpackName, sourceUnpackName,
84    -- SourceStrictness
85    noSourceStrictnessName, sourceLazyName, sourceStrictName,
86    -- Con
87    normalCName, recCName, infixCName, forallCName, gadtCName, recGadtCName,
88    -- Bang
89    bangName,
90    -- BangType
91    bangTypeName,
92    -- VarBangType
93    varBangTypeName,
94    -- PatSynDir (for pattern synonyms)
95    unidirPatSynName, implBidirPatSynName, explBidirPatSynName,
96    -- PatSynArgs (for pattern synonyms)
97    prefixPatSynName, infixPatSynName, recordPatSynName,
98    -- Type
99    forallTName, forallVisTName, varTName, conTName, infixTName, appTName,
100    appKindTName, equalityTName, tupleTName, unboxedTupleTName,
101    unboxedSumTName, arrowTName, listTName, sigTName, litTName,
102    promotedTName, promotedTupleTName, promotedNilTName, promotedConsTName,
103    wildCardTName, implicitParamTName,
104    -- TyLit
105    numTyLitName, strTyLitName,
106    -- TyVarBndr
107    plainTVName, kindedTVName,
108    -- Role
109    nominalRName, representationalRName, phantomRName, inferRName,
110    -- Kind
111    varKName, conKName, tupleKName, arrowKName, listKName, appKName,
112    starKName, constraintKName,
113    -- FamilyResultSig
114    noSigName, kindSigName, tyVarSigName,
115    -- InjectivityAnn
116    injectivityAnnName,
117    -- Callconv
118    cCallName, stdCallName, cApiCallName, primCallName, javaScriptCallName,
119    -- Safety
120    unsafeName,
121    safeName,
122    interruptibleName,
123    -- Inline
124    noInlineDataConName, inlineDataConName, inlinableDataConName,
125    -- RuleMatch
126    conLikeDataConName, funLikeDataConName,
127    -- Phases
128    allPhasesDataConName, fromPhaseDataConName, beforePhaseDataConName,
129    -- Overlap
130    overlappableDataConName, overlappingDataConName, overlapsDataConName,
131    incoherentDataConName,
132    -- DerivStrategy
133    stockStrategyName, anyclassStrategyName,
134    newtypeStrategyName, viaStrategyName,
135    -- TExp
136    tExpDataConName,
137    -- RuleBndr
138    ruleVarName, typedRuleVarName,
139    -- FunDep
140    funDepName,
141    -- TySynEqn
142    tySynEqnName,
143    -- AnnTarget
144    valueAnnotationName, typeAnnotationName, moduleAnnotationName,
145    -- DerivClause
146    derivClauseName,
147
148    -- The type classes
149    liftClassName,
150
151    -- And the tycons
152    qTyConName, nameTyConName, patTyConName, fieldPatTyConName, matchQTyConName,
153    clauseQTyConName, expQTyConName, fieldExpTyConName, predTyConName,
154    stmtQTyConName, decQTyConName, conQTyConName, bangTypeQTyConName,
155    varBangTypeQTyConName, typeQTyConName, expTyConName, decTyConName,
156    typeTyConName, tyVarBndrQTyConName, matchTyConName, clauseTyConName,
157    patQTyConName, fieldPatQTyConName, fieldExpQTyConName, funDepTyConName,
158    predQTyConName, decsQTyConName, ruleBndrQTyConName, tySynEqnQTyConName,
159    roleTyConName, tExpTyConName, injAnnTyConName, kindQTyConName,
160    overlapTyConName, derivClauseQTyConName, derivStrategyQTyConName,
161
162    -- Quasiquoting
163    quoteDecName, quoteTypeName, quoteExpName, quotePatName]
164
165thSyn, thLib, qqLib :: Module
166thSyn = mkTHModule (fsLit "Language.Haskell.TH.Syntax")
167thLib = mkTHModule (fsLit "Language.Haskell.TH.Lib.Internal")
168qqLib = mkTHModule (fsLit "Language.Haskell.TH.Quote")
169
170mkTHModule :: FastString -> Module
171mkTHModule m = mkModule thUnitId (mkModuleNameFS m)
172
173libFun, libTc, thFun, thTc, thCls, thCon, qqFun :: FastString -> Unique -> Name
174libFun = mk_known_key_name OccName.varName  thLib
175libTc  = mk_known_key_name OccName.tcName   thLib
176thFun  = mk_known_key_name OccName.varName  thSyn
177thTc   = mk_known_key_name OccName.tcName   thSyn
178thCls  = mk_known_key_name OccName.clsName  thSyn
179thCon  = mk_known_key_name OccName.dataName thSyn
180qqFun  = mk_known_key_name OccName.varName  qqLib
181
182-------------------- TH.Syntax -----------------------
183liftClassName :: Name
184liftClassName = thCls (fsLit "Lift") liftClassKey
185
186qTyConName, nameTyConName, fieldExpTyConName, patTyConName,
187    fieldPatTyConName, expTyConName, decTyConName, typeTyConName,
188    matchTyConName, clauseTyConName, funDepTyConName, predTyConName,
189    tExpTyConName, injAnnTyConName, overlapTyConName :: Name
190qTyConName             = thTc (fsLit "Q")              qTyConKey
191nameTyConName          = thTc (fsLit "Name")           nameTyConKey
192fieldExpTyConName      = thTc (fsLit "FieldExp")       fieldExpTyConKey
193patTyConName           = thTc (fsLit "Pat")            patTyConKey
194fieldPatTyConName      = thTc (fsLit "FieldPat")       fieldPatTyConKey
195expTyConName           = thTc (fsLit "Exp")            expTyConKey
196decTyConName           = thTc (fsLit "Dec")            decTyConKey
197typeTyConName          = thTc (fsLit "Type")           typeTyConKey
198matchTyConName         = thTc (fsLit "Match")          matchTyConKey
199clauseTyConName        = thTc (fsLit "Clause")         clauseTyConKey
200funDepTyConName        = thTc (fsLit "FunDep")         funDepTyConKey
201predTyConName          = thTc (fsLit "Pred")           predTyConKey
202tExpTyConName          = thTc (fsLit "TExp")           tExpTyConKey
203injAnnTyConName        = thTc (fsLit "InjectivityAnn") injAnnTyConKey
204overlapTyConName       = thTc (fsLit "Overlap")        overlapTyConKey
205
206returnQName, bindQName, sequenceQName, newNameName, liftName,
207    mkNameName, mkNameG_vName, mkNameG_dName, mkNameG_tcName,
208    mkNameLName, mkNameSName, liftStringName, unTypeName, unTypeQName,
209    unsafeTExpCoerceName, liftTypedName :: Name
210returnQName    = thFun (fsLit "returnQ")   returnQIdKey
211bindQName      = thFun (fsLit "bindQ")     bindQIdKey
212sequenceQName  = thFun (fsLit "sequenceQ") sequenceQIdKey
213newNameName    = thFun (fsLit "newName")   newNameIdKey
214liftName       = thFun (fsLit "lift")      liftIdKey
215liftStringName = thFun (fsLit "liftString")  liftStringIdKey
216mkNameName     = thFun (fsLit "mkName")     mkNameIdKey
217mkNameG_vName  = thFun (fsLit "mkNameG_v")  mkNameG_vIdKey
218mkNameG_dName  = thFun (fsLit "mkNameG_d")  mkNameG_dIdKey
219mkNameG_tcName = thFun (fsLit "mkNameG_tc") mkNameG_tcIdKey
220mkNameLName    = thFun (fsLit "mkNameL")    mkNameLIdKey
221mkNameSName    = thFun (fsLit "mkNameS")    mkNameSIdKey
222unTypeName     = thFun (fsLit "unType")     unTypeIdKey
223unTypeQName    = thFun (fsLit "unTypeQ")    unTypeQIdKey
224unsafeTExpCoerceName = thFun (fsLit "unsafeTExpCoerce") unsafeTExpCoerceIdKey
225liftTypedName = thFun (fsLit "liftTyped") liftTypedIdKey
226
227
228-------------------- TH.Lib -----------------------
229-- data Lit = ...
230charLName, stringLName, integerLName, intPrimLName, wordPrimLName,
231    floatPrimLName, doublePrimLName, rationalLName, stringPrimLName,
232    charPrimLName :: Name
233charLName       = libFun (fsLit "charL")       charLIdKey
234stringLName     = libFun (fsLit "stringL")     stringLIdKey
235integerLName    = libFun (fsLit "integerL")    integerLIdKey
236intPrimLName    = libFun (fsLit "intPrimL")    intPrimLIdKey
237wordPrimLName   = libFun (fsLit "wordPrimL")   wordPrimLIdKey
238floatPrimLName  = libFun (fsLit "floatPrimL")  floatPrimLIdKey
239doublePrimLName = libFun (fsLit "doublePrimL") doublePrimLIdKey
240rationalLName   = libFun (fsLit "rationalL")     rationalLIdKey
241stringPrimLName = libFun (fsLit "stringPrimL") stringPrimLIdKey
242charPrimLName   = libFun (fsLit "charPrimL")   charPrimLIdKey
243
244-- data Pat = ...
245litPName, varPName, tupPName, unboxedTupPName, unboxedSumPName, conPName,
246    infixPName, tildePName, bangPName, asPName, wildPName, recPName, listPName,
247    sigPName, viewPName :: Name
248litPName   = libFun (fsLit "litP")   litPIdKey
249varPName   = libFun (fsLit "varP")   varPIdKey
250tupPName   = libFun (fsLit "tupP")   tupPIdKey
251unboxedTupPName = libFun (fsLit "unboxedTupP") unboxedTupPIdKey
252unboxedSumPName = libFun (fsLit "unboxedSumP") unboxedSumPIdKey
253conPName   = libFun (fsLit "conP")   conPIdKey
254infixPName = libFun (fsLit "infixP") infixPIdKey
255tildePName = libFun (fsLit "tildeP") tildePIdKey
256bangPName  = libFun (fsLit "bangP")  bangPIdKey
257asPName    = libFun (fsLit "asP")    asPIdKey
258wildPName  = libFun (fsLit "wildP")  wildPIdKey
259recPName   = libFun (fsLit "recP")   recPIdKey
260listPName  = libFun (fsLit "listP")  listPIdKey
261sigPName   = libFun (fsLit "sigP")   sigPIdKey
262viewPName  = libFun (fsLit "viewP")  viewPIdKey
263
264-- type FieldPat = ...
265fieldPatName :: Name
266fieldPatName = libFun (fsLit "fieldPat") fieldPatIdKey
267
268-- data Match = ...
269matchName :: Name
270matchName = libFun (fsLit "match") matchIdKey
271
272-- data Clause = ...
273clauseName :: Name
274clauseName = libFun (fsLit "clause") clauseIdKey
275
276-- data Exp = ...
277varEName, conEName, litEName, appEName, appTypeEName, infixEName, infixAppName,
278    sectionLName, sectionRName, lamEName, lamCaseEName, tupEName,
279    unboxedTupEName, unboxedSumEName, condEName, multiIfEName, letEName,
280    caseEName, doEName, mdoEName, compEName, staticEName, unboundVarEName,
281    labelEName, implicitParamVarEName :: Name
282varEName              = libFun (fsLit "varE")              varEIdKey
283conEName              = libFun (fsLit "conE")              conEIdKey
284litEName              = libFun (fsLit "litE")              litEIdKey
285appEName              = libFun (fsLit "appE")              appEIdKey
286appTypeEName          = libFun (fsLit "appTypeE")          appTypeEIdKey
287infixEName            = libFun (fsLit "infixE")            infixEIdKey
288infixAppName          = libFun (fsLit "infixApp")          infixAppIdKey
289sectionLName          = libFun (fsLit "sectionL")          sectionLIdKey
290sectionRName          = libFun (fsLit "sectionR")          sectionRIdKey
291lamEName              = libFun (fsLit "lamE")              lamEIdKey
292lamCaseEName          = libFun (fsLit "lamCaseE")          lamCaseEIdKey
293tupEName              = libFun (fsLit "tupE")              tupEIdKey
294unboxedTupEName       = libFun (fsLit "unboxedTupE")       unboxedTupEIdKey
295unboxedSumEName       = libFun (fsLit "unboxedSumE")       unboxedSumEIdKey
296condEName             = libFun (fsLit "condE")             condEIdKey
297multiIfEName          = libFun (fsLit "multiIfE")          multiIfEIdKey
298letEName              = libFun (fsLit "letE")              letEIdKey
299caseEName             = libFun (fsLit "caseE")             caseEIdKey
300doEName               = libFun (fsLit "doE")               doEIdKey
301mdoEName              = libFun (fsLit "mdoE")              mdoEIdKey
302compEName             = libFun (fsLit "compE")             compEIdKey
303-- ArithSeq skips a level
304fromEName, fromThenEName, fromToEName, fromThenToEName :: Name
305fromEName             = libFun (fsLit "fromE")             fromEIdKey
306fromThenEName         = libFun (fsLit "fromThenE")         fromThenEIdKey
307fromToEName           = libFun (fsLit "fromToE")           fromToEIdKey
308fromThenToEName       = libFun (fsLit "fromThenToE")       fromThenToEIdKey
309-- end ArithSeq
310listEName, sigEName, recConEName, recUpdEName :: Name
311listEName             = libFun (fsLit "listE")             listEIdKey
312sigEName              = libFun (fsLit "sigE")              sigEIdKey
313recConEName           = libFun (fsLit "recConE")           recConEIdKey
314recUpdEName           = libFun (fsLit "recUpdE")           recUpdEIdKey
315staticEName           = libFun (fsLit "staticE")           staticEIdKey
316unboundVarEName       = libFun (fsLit "unboundVarE")       unboundVarEIdKey
317labelEName            = libFun (fsLit "labelE")            labelEIdKey
318implicitParamVarEName = libFun (fsLit "implicitParamVarE") implicitParamVarEIdKey
319
320-- type FieldExp = ...
321fieldExpName :: Name
322fieldExpName = libFun (fsLit "fieldExp") fieldExpIdKey
323
324-- data Body = ...
325guardedBName, normalBName :: Name
326guardedBName = libFun (fsLit "guardedB") guardedBIdKey
327normalBName  = libFun (fsLit "normalB")  normalBIdKey
328
329-- data Guard = ...
330normalGEName, patGEName :: Name
331normalGEName = libFun (fsLit "normalGE") normalGEIdKey
332patGEName    = libFun (fsLit "patGE")    patGEIdKey
333
334-- data Stmt = ...
335bindSName, letSName, noBindSName, parSName, recSName :: Name
336bindSName   = libFun (fsLit "bindS")   bindSIdKey
337letSName    = libFun (fsLit "letS")    letSIdKey
338noBindSName = libFun (fsLit "noBindS") noBindSIdKey
339parSName    = libFun (fsLit "parS")    parSIdKey
340recSName    = libFun (fsLit "recS")    recSIdKey
341
342-- data Dec = ...
343funDName, valDName, dataDName, newtypeDName, tySynDName, classDName,
344    instanceWithOverlapDName, sigDName, kiSigDName, forImpDName, pragInlDName,
345    pragSpecDName, pragSpecInlDName, pragSpecInstDName, pragRuleDName,
346    pragAnnDName, standaloneDerivWithStrategyDName, defaultSigDName,
347    dataInstDName, newtypeInstDName, tySynInstDName, dataFamilyDName,
348    openTypeFamilyDName, closedTypeFamilyDName, infixLDName, infixRDName,
349    infixNDName, roleAnnotDName, patSynDName, patSynSigDName,
350    pragCompleteDName, implicitParamBindDName :: Name
351funDName                         = libFun (fsLit "funD")                         funDIdKey
352valDName                         = libFun (fsLit "valD")                         valDIdKey
353dataDName                        = libFun (fsLit "dataD")                        dataDIdKey
354newtypeDName                     = libFun (fsLit "newtypeD")                     newtypeDIdKey
355tySynDName                       = libFun (fsLit "tySynD")                       tySynDIdKey
356classDName                       = libFun (fsLit "classD")                       classDIdKey
357instanceWithOverlapDName         = libFun (fsLit "instanceWithOverlapD")         instanceWithOverlapDIdKey
358standaloneDerivWithStrategyDName = libFun (fsLit "standaloneDerivWithStrategyD") standaloneDerivWithStrategyDIdKey
359sigDName                         = libFun (fsLit "sigD")                         sigDIdKey
360kiSigDName                       = libFun (fsLit "kiSigD")                       kiSigDIdKey
361defaultSigDName                  = libFun (fsLit "defaultSigD")                  defaultSigDIdKey
362forImpDName                      = libFun (fsLit "forImpD")                      forImpDIdKey
363pragInlDName                     = libFun (fsLit "pragInlD")                     pragInlDIdKey
364pragSpecDName                    = libFun (fsLit "pragSpecD")                    pragSpecDIdKey
365pragSpecInlDName                 = libFun (fsLit "pragSpecInlD")                 pragSpecInlDIdKey
366pragSpecInstDName                = libFun (fsLit "pragSpecInstD")                pragSpecInstDIdKey
367pragRuleDName                    = libFun (fsLit "pragRuleD")                    pragRuleDIdKey
368pragCompleteDName                = libFun (fsLit "pragCompleteD")                pragCompleteDIdKey
369pragAnnDName                     = libFun (fsLit "pragAnnD")                     pragAnnDIdKey
370dataInstDName                    = libFun (fsLit "dataInstD")                    dataInstDIdKey
371newtypeInstDName                 = libFun (fsLit "newtypeInstD")                 newtypeInstDIdKey
372tySynInstDName                   = libFun (fsLit "tySynInstD")                   tySynInstDIdKey
373openTypeFamilyDName              = libFun (fsLit "openTypeFamilyD")              openTypeFamilyDIdKey
374closedTypeFamilyDName            = libFun (fsLit "closedTypeFamilyD")            closedTypeFamilyDIdKey
375dataFamilyDName                  = libFun (fsLit "dataFamilyD")                  dataFamilyDIdKey
376infixLDName                      = libFun (fsLit "infixLD")                      infixLDIdKey
377infixRDName                      = libFun (fsLit "infixRD")                      infixRDIdKey
378infixNDName                      = libFun (fsLit "infixND")                      infixNDIdKey
379roleAnnotDName                   = libFun (fsLit "roleAnnotD")                   roleAnnotDIdKey
380patSynDName                      = libFun (fsLit "patSynD")                      patSynDIdKey
381patSynSigDName                   = libFun (fsLit "patSynSigD")                   patSynSigDIdKey
382implicitParamBindDName           = libFun (fsLit "implicitParamBindD")           implicitParamBindDIdKey
383
384-- type Ctxt = ...
385cxtName :: Name
386cxtName = libFun (fsLit "cxt") cxtIdKey
387
388-- data SourceUnpackedness = ...
389noSourceUnpackednessName, sourceNoUnpackName, sourceUnpackName :: Name
390noSourceUnpackednessName = libFun (fsLit "noSourceUnpackedness") noSourceUnpackednessKey
391sourceNoUnpackName       = libFun (fsLit "sourceNoUnpack")       sourceNoUnpackKey
392sourceUnpackName         = libFun (fsLit "sourceUnpack")         sourceUnpackKey
393
394-- data SourceStrictness = ...
395noSourceStrictnessName, sourceLazyName, sourceStrictName :: Name
396noSourceStrictnessName = libFun (fsLit "noSourceStrictness") noSourceStrictnessKey
397sourceLazyName         = libFun (fsLit "sourceLazy")         sourceLazyKey
398sourceStrictName       = libFun (fsLit "sourceStrict")       sourceStrictKey
399
400-- data Con = ...
401normalCName, recCName, infixCName, forallCName, gadtCName, recGadtCName :: Name
402normalCName  = libFun (fsLit "normalC" ) normalCIdKey
403recCName     = libFun (fsLit "recC"    ) recCIdKey
404infixCName   = libFun (fsLit "infixC"  ) infixCIdKey
405forallCName  = libFun (fsLit "forallC" ) forallCIdKey
406gadtCName    = libFun (fsLit "gadtC"   ) gadtCIdKey
407recGadtCName = libFun (fsLit "recGadtC") recGadtCIdKey
408
409-- data Bang = ...
410bangName :: Name
411bangName = libFun (fsLit "bang") bangIdKey
412
413-- type BangType = ...
414bangTypeName :: Name
415bangTypeName = libFun (fsLit "bangType") bangTKey
416
417-- type VarBangType = ...
418varBangTypeName :: Name
419varBangTypeName = libFun (fsLit "varBangType") varBangTKey
420
421-- data PatSynDir = ...
422unidirPatSynName, implBidirPatSynName, explBidirPatSynName :: Name
423unidirPatSynName    = libFun (fsLit "unidir")    unidirPatSynIdKey
424implBidirPatSynName = libFun (fsLit "implBidir") implBidirPatSynIdKey
425explBidirPatSynName = libFun (fsLit "explBidir") explBidirPatSynIdKey
426
427-- data PatSynArgs = ...
428prefixPatSynName, infixPatSynName, recordPatSynName :: Name
429prefixPatSynName = libFun (fsLit "prefixPatSyn") prefixPatSynIdKey
430infixPatSynName  = libFun (fsLit "infixPatSyn")  infixPatSynIdKey
431recordPatSynName = libFun (fsLit "recordPatSyn") recordPatSynIdKey
432
433-- data Type = ...
434forallTName, forallVisTName, varTName, conTName, infixTName, tupleTName,
435    unboxedTupleTName, unboxedSumTName, arrowTName, listTName, appTName,
436    appKindTName, sigTName, equalityTName, litTName, promotedTName,
437    promotedTupleTName, promotedNilTName, promotedConsTName,
438    wildCardTName, implicitParamTName :: Name
439forallTName         = libFun (fsLit "forallT")        forallTIdKey
440forallVisTName      = libFun (fsLit "forallVisT")     forallVisTIdKey
441varTName            = libFun (fsLit "varT")           varTIdKey
442conTName            = libFun (fsLit "conT")           conTIdKey
443tupleTName          = libFun (fsLit "tupleT")         tupleTIdKey
444unboxedTupleTName   = libFun (fsLit "unboxedTupleT")  unboxedTupleTIdKey
445unboxedSumTName     = libFun (fsLit "unboxedSumT")    unboxedSumTIdKey
446arrowTName          = libFun (fsLit "arrowT")         arrowTIdKey
447listTName           = libFun (fsLit "listT")          listTIdKey
448appTName            = libFun (fsLit "appT")           appTIdKey
449appKindTName        = libFun (fsLit "appKindT")       appKindTIdKey
450sigTName            = libFun (fsLit "sigT")           sigTIdKey
451equalityTName       = libFun (fsLit "equalityT")      equalityTIdKey
452litTName            = libFun (fsLit "litT")           litTIdKey
453promotedTName       = libFun (fsLit "promotedT")      promotedTIdKey
454promotedTupleTName  = libFun (fsLit "promotedTupleT") promotedTupleTIdKey
455promotedNilTName    = libFun (fsLit "promotedNilT")   promotedNilTIdKey
456promotedConsTName   = libFun (fsLit "promotedConsT")  promotedConsTIdKey
457wildCardTName       = libFun (fsLit "wildCardT")      wildCardTIdKey
458infixTName          = libFun (fsLit "infixT")         infixTIdKey
459implicitParamTName  = libFun (fsLit "implicitParamT") implicitParamTIdKey
460
461-- data TyLit = ...
462numTyLitName, strTyLitName :: Name
463numTyLitName = libFun (fsLit "numTyLit") numTyLitIdKey
464strTyLitName = libFun (fsLit "strTyLit") strTyLitIdKey
465
466-- data TyVarBndr = ...
467plainTVName, kindedTVName :: Name
468plainTVName  = libFun (fsLit "plainTV")  plainTVIdKey
469kindedTVName = libFun (fsLit "kindedTV") kindedTVIdKey
470
471-- data Role = ...
472nominalRName, representationalRName, phantomRName, inferRName :: Name
473nominalRName          = libFun (fsLit "nominalR")          nominalRIdKey
474representationalRName = libFun (fsLit "representationalR") representationalRIdKey
475phantomRName          = libFun (fsLit "phantomR")          phantomRIdKey
476inferRName            = libFun (fsLit "inferR")            inferRIdKey
477
478-- data Kind = ...
479varKName, conKName, tupleKName, arrowKName, listKName, appKName,
480  starKName, constraintKName :: Name
481varKName        = libFun (fsLit "varK")         varKIdKey
482conKName        = libFun (fsLit "conK")         conKIdKey
483tupleKName      = libFun (fsLit "tupleK")       tupleKIdKey
484arrowKName      = libFun (fsLit "arrowK")       arrowKIdKey
485listKName       = libFun (fsLit "listK")        listKIdKey
486appKName        = libFun (fsLit "appK")         appKIdKey
487starKName       = libFun (fsLit "starK")        starKIdKey
488constraintKName = libFun (fsLit "constraintK")  constraintKIdKey
489
490-- data FamilyResultSig = ...
491noSigName, kindSigName, tyVarSigName :: Name
492noSigName    = libFun (fsLit "noSig")    noSigIdKey
493kindSigName  = libFun (fsLit "kindSig")  kindSigIdKey
494tyVarSigName = libFun (fsLit "tyVarSig") tyVarSigIdKey
495
496-- data InjectivityAnn = ...
497injectivityAnnName :: Name
498injectivityAnnName = libFun (fsLit "injectivityAnn") injectivityAnnIdKey
499
500-- data Callconv = ...
501cCallName, stdCallName, cApiCallName, primCallName, javaScriptCallName :: Name
502cCallName = libFun (fsLit "cCall") cCallIdKey
503stdCallName = libFun (fsLit "stdCall") stdCallIdKey
504cApiCallName = libFun (fsLit "cApi") cApiCallIdKey
505primCallName = libFun (fsLit "prim") primCallIdKey
506javaScriptCallName = libFun (fsLit "javaScript") javaScriptCallIdKey
507
508-- data Safety = ...
509unsafeName, safeName, interruptibleName :: Name
510unsafeName     = libFun (fsLit "unsafe") unsafeIdKey
511safeName       = libFun (fsLit "safe") safeIdKey
512interruptibleName = libFun (fsLit "interruptible") interruptibleIdKey
513
514-- newtype TExp a = ...
515tExpDataConName :: Name
516tExpDataConName = thCon (fsLit "TExp") tExpDataConKey
517
518-- data RuleBndr = ...
519ruleVarName, typedRuleVarName :: Name
520ruleVarName      = libFun (fsLit ("ruleVar"))      ruleVarIdKey
521typedRuleVarName = libFun (fsLit ("typedRuleVar")) typedRuleVarIdKey
522
523-- data FunDep = ...
524funDepName :: Name
525funDepName     = libFun (fsLit "funDep") funDepIdKey
526
527-- data TySynEqn = ...
528tySynEqnName :: Name
529tySynEqnName = libFun (fsLit "tySynEqn") tySynEqnIdKey
530
531-- data AnnTarget = ...
532valueAnnotationName, typeAnnotationName, moduleAnnotationName :: Name
533valueAnnotationName  = libFun (fsLit "valueAnnotation")  valueAnnotationIdKey
534typeAnnotationName   = libFun (fsLit "typeAnnotation")   typeAnnotationIdKey
535moduleAnnotationName = libFun (fsLit "moduleAnnotation") moduleAnnotationIdKey
536
537-- type DerivClause = ...
538derivClauseName :: Name
539derivClauseName = libFun (fsLit "derivClause") derivClauseIdKey
540
541-- data DerivStrategy = ...
542stockStrategyName, anyclassStrategyName, newtypeStrategyName,
543  viaStrategyName :: Name
544stockStrategyName    = libFun (fsLit "stockStrategy")    stockStrategyIdKey
545anyclassStrategyName = libFun (fsLit "anyclassStrategy") anyclassStrategyIdKey
546newtypeStrategyName  = libFun (fsLit "newtypeStrategy")  newtypeStrategyIdKey
547viaStrategyName      = libFun (fsLit "viaStrategy")      viaStrategyIdKey
548
549matchQTyConName, clauseQTyConName, expQTyConName, stmtQTyConName,
550    decQTyConName, conQTyConName, bangTypeQTyConName,
551    varBangTypeQTyConName, typeQTyConName, fieldExpQTyConName,
552    patQTyConName, fieldPatQTyConName, predQTyConName, decsQTyConName,
553    ruleBndrQTyConName, tySynEqnQTyConName, roleTyConName,
554    derivClauseQTyConName, kindQTyConName, tyVarBndrQTyConName,
555    derivStrategyQTyConName :: Name
556matchQTyConName         = libTc (fsLit "MatchQ")         matchQTyConKey
557clauseQTyConName        = libTc (fsLit "ClauseQ")        clauseQTyConKey
558expQTyConName           = libTc (fsLit "ExpQ")           expQTyConKey
559stmtQTyConName          = libTc (fsLit "StmtQ")          stmtQTyConKey
560decQTyConName           = libTc (fsLit "DecQ")           decQTyConKey
561decsQTyConName          = libTc (fsLit "DecsQ")          decsQTyConKey  -- Q [Dec]
562conQTyConName           = libTc (fsLit "ConQ")           conQTyConKey
563bangTypeQTyConName      = libTc (fsLit "BangTypeQ")      bangTypeQTyConKey
564varBangTypeQTyConName   = libTc (fsLit "VarBangTypeQ")   varBangTypeQTyConKey
565typeQTyConName          = libTc (fsLit "TypeQ")          typeQTyConKey
566fieldExpQTyConName      = libTc (fsLit "FieldExpQ")      fieldExpQTyConKey
567patQTyConName           = libTc (fsLit "PatQ")           patQTyConKey
568fieldPatQTyConName      = libTc (fsLit "FieldPatQ")      fieldPatQTyConKey
569predQTyConName          = libTc (fsLit "PredQ")          predQTyConKey
570ruleBndrQTyConName      = libTc (fsLit "RuleBndrQ")      ruleBndrQTyConKey
571tySynEqnQTyConName      = libTc (fsLit "TySynEqnQ")      tySynEqnQTyConKey
572roleTyConName           = libTc (fsLit "Role")           roleTyConKey
573derivClauseQTyConName   = libTc (fsLit "DerivClauseQ")   derivClauseQTyConKey
574kindQTyConName          = libTc (fsLit "KindQ")          kindQTyConKey
575tyVarBndrQTyConName     = libTc (fsLit "TyVarBndrQ")     tyVarBndrQTyConKey
576derivStrategyQTyConName = libTc (fsLit "DerivStrategyQ") derivStrategyQTyConKey
577
578-- quasiquoting
579quoteExpName, quotePatName, quoteDecName, quoteTypeName :: Name
580quoteExpName        = qqFun (fsLit "quoteExp")  quoteExpKey
581quotePatName        = qqFun (fsLit "quotePat")  quotePatKey
582quoteDecName        = qqFun (fsLit "quoteDec")  quoteDecKey
583quoteTypeName       = qqFun (fsLit "quoteType") quoteTypeKey
584
585-- data Inline = ...
586noInlineDataConName, inlineDataConName, inlinableDataConName :: Name
587noInlineDataConName  = thCon (fsLit "NoInline")  noInlineDataConKey
588inlineDataConName    = thCon (fsLit "Inline")    inlineDataConKey
589inlinableDataConName = thCon (fsLit "Inlinable") inlinableDataConKey
590
591-- data RuleMatch = ...
592conLikeDataConName, funLikeDataConName :: Name
593conLikeDataConName = thCon (fsLit "ConLike") conLikeDataConKey
594funLikeDataConName = thCon (fsLit "FunLike") funLikeDataConKey
595
596-- data Phases = ...
597allPhasesDataConName, fromPhaseDataConName, beforePhaseDataConName :: Name
598allPhasesDataConName   = thCon (fsLit "AllPhases")   allPhasesDataConKey
599fromPhaseDataConName   = thCon (fsLit "FromPhase")   fromPhaseDataConKey
600beforePhaseDataConName = thCon (fsLit "BeforePhase") beforePhaseDataConKey
601
602-- data Overlap = ...
603overlappableDataConName,
604  overlappingDataConName,
605  overlapsDataConName,
606  incoherentDataConName :: Name
607overlappableDataConName = thCon (fsLit "Overlappable") overlappableDataConKey
608overlappingDataConName  = thCon (fsLit "Overlapping")  overlappingDataConKey
609overlapsDataConName     = thCon (fsLit "Overlaps")     overlapsDataConKey
610incoherentDataConName   = thCon (fsLit "Incoherent")   incoherentDataConKey
611
612{- *********************************************************************
613*                                                                      *
614                     Class keys
615*                                                                      *
616********************************************************************* -}
617
618-- ClassUniques available: 200-299
619-- Check in PrelNames if you want to change this
620
621liftClassKey :: Unique
622liftClassKey = mkPreludeClassUnique 200
623
624{- *********************************************************************
625*                                                                      *
626                     TyCon keys
627*                                                                      *
628********************************************************************* -}
629
630-- TyConUniques available: 200-299
631-- Check in PrelNames if you want to change this
632
633expTyConKey, matchTyConKey, clauseTyConKey, qTyConKey, expQTyConKey,
634    decQTyConKey, patTyConKey, matchQTyConKey, clauseQTyConKey,
635    stmtQTyConKey, conQTyConKey, typeQTyConKey, typeTyConKey,
636    tyVarBndrQTyConKey, decTyConKey, bangTypeQTyConKey, varBangTypeQTyConKey,
637    fieldExpTyConKey, fieldPatTyConKey, nameTyConKey, patQTyConKey,
638    fieldPatQTyConKey, fieldExpQTyConKey, funDepTyConKey, predTyConKey,
639    predQTyConKey, decsQTyConKey, ruleBndrQTyConKey, tySynEqnQTyConKey,
640    roleTyConKey, tExpTyConKey, injAnnTyConKey, kindQTyConKey,
641    overlapTyConKey, derivClauseQTyConKey, derivStrategyQTyConKey :: Unique
642expTyConKey             = mkPreludeTyConUnique 200
643matchTyConKey           = mkPreludeTyConUnique 201
644clauseTyConKey          = mkPreludeTyConUnique 202
645qTyConKey               = mkPreludeTyConUnique 203
646expQTyConKey            = mkPreludeTyConUnique 204
647decQTyConKey            = mkPreludeTyConUnique 205
648patTyConKey             = mkPreludeTyConUnique 206
649matchQTyConKey          = mkPreludeTyConUnique 207
650clauseQTyConKey         = mkPreludeTyConUnique 208
651stmtQTyConKey           = mkPreludeTyConUnique 209
652conQTyConKey            = mkPreludeTyConUnique 210
653typeQTyConKey           = mkPreludeTyConUnique 211
654typeTyConKey            = mkPreludeTyConUnique 212
655decTyConKey             = mkPreludeTyConUnique 213
656bangTypeQTyConKey       = mkPreludeTyConUnique 214
657varBangTypeQTyConKey    = mkPreludeTyConUnique 215
658fieldExpTyConKey        = mkPreludeTyConUnique 216
659fieldPatTyConKey        = mkPreludeTyConUnique 217
660nameTyConKey            = mkPreludeTyConUnique 218
661patQTyConKey            = mkPreludeTyConUnique 219
662fieldPatQTyConKey       = mkPreludeTyConUnique 220
663fieldExpQTyConKey       = mkPreludeTyConUnique 221
664funDepTyConKey          = mkPreludeTyConUnique 222
665predTyConKey            = mkPreludeTyConUnique 223
666predQTyConKey           = mkPreludeTyConUnique 224
667tyVarBndrQTyConKey      = mkPreludeTyConUnique 225
668decsQTyConKey           = mkPreludeTyConUnique 226
669ruleBndrQTyConKey       = mkPreludeTyConUnique 227
670tySynEqnQTyConKey       = mkPreludeTyConUnique 228
671roleTyConKey            = mkPreludeTyConUnique 229
672tExpTyConKey            = mkPreludeTyConUnique 230
673injAnnTyConKey          = mkPreludeTyConUnique 231
674kindQTyConKey           = mkPreludeTyConUnique 232
675overlapTyConKey         = mkPreludeTyConUnique 233
676derivClauseQTyConKey    = mkPreludeTyConUnique 234
677derivStrategyQTyConKey  = mkPreludeTyConUnique 235
678
679{- *********************************************************************
680*                                                                      *
681                     DataCon keys
682*                                                                      *
683********************************************************************* -}
684
685-- DataConUniques available: 100-150
686-- If you want to change this, make sure you check in PrelNames
687
688-- data Inline = ...
689noInlineDataConKey, inlineDataConKey, inlinableDataConKey :: Unique
690noInlineDataConKey  = mkPreludeDataConUnique 200
691inlineDataConKey    = mkPreludeDataConUnique 201
692inlinableDataConKey = mkPreludeDataConUnique 202
693
694-- data RuleMatch = ...
695conLikeDataConKey, funLikeDataConKey :: Unique
696conLikeDataConKey = mkPreludeDataConUnique 203
697funLikeDataConKey = mkPreludeDataConUnique 204
698
699-- data Phases = ...
700allPhasesDataConKey, fromPhaseDataConKey, beforePhaseDataConKey :: Unique
701allPhasesDataConKey   = mkPreludeDataConUnique 205
702fromPhaseDataConKey   = mkPreludeDataConUnique 206
703beforePhaseDataConKey = mkPreludeDataConUnique 207
704
705-- newtype TExp a = ...
706tExpDataConKey :: Unique
707tExpDataConKey = mkPreludeDataConUnique 208
708
709-- data Overlap = ..
710overlappableDataConKey,
711  overlappingDataConKey,
712  overlapsDataConKey,
713  incoherentDataConKey :: Unique
714overlappableDataConKey = mkPreludeDataConUnique 209
715overlappingDataConKey  = mkPreludeDataConUnique 210
716overlapsDataConKey     = mkPreludeDataConUnique 211
717incoherentDataConKey   = mkPreludeDataConUnique 212
718
719{- *********************************************************************
720*                                                                      *
721                     Id keys
722*                                                                      *
723********************************************************************* -}
724
725-- IdUniques available: 200-499
726-- If you want to change this, make sure you check in PrelNames
727
728returnQIdKey, bindQIdKey, sequenceQIdKey, liftIdKey, newNameIdKey,
729    mkNameIdKey, mkNameG_vIdKey, mkNameG_dIdKey, mkNameG_tcIdKey,
730    mkNameLIdKey, mkNameSIdKey, unTypeIdKey, unTypeQIdKey,
731    unsafeTExpCoerceIdKey, liftTypedIdKey :: Unique
732returnQIdKey        = mkPreludeMiscIdUnique 200
733bindQIdKey          = mkPreludeMiscIdUnique 201
734sequenceQIdKey      = mkPreludeMiscIdUnique 202
735liftIdKey           = mkPreludeMiscIdUnique 203
736newNameIdKey         = mkPreludeMiscIdUnique 204
737mkNameIdKey          = mkPreludeMiscIdUnique 205
738mkNameG_vIdKey       = mkPreludeMiscIdUnique 206
739mkNameG_dIdKey       = mkPreludeMiscIdUnique 207
740mkNameG_tcIdKey      = mkPreludeMiscIdUnique 208
741mkNameLIdKey         = mkPreludeMiscIdUnique 209
742mkNameSIdKey         = mkPreludeMiscIdUnique 210
743unTypeIdKey          = mkPreludeMiscIdUnique 211
744unTypeQIdKey         = mkPreludeMiscIdUnique 212
745unsafeTExpCoerceIdKey = mkPreludeMiscIdUnique 213
746liftTypedIdKey        = mkPreludeMiscIdUnique 214
747
748
749-- data Lit = ...
750charLIdKey, stringLIdKey, integerLIdKey, intPrimLIdKey, wordPrimLIdKey,
751    floatPrimLIdKey, doublePrimLIdKey, rationalLIdKey, stringPrimLIdKey,
752    charPrimLIdKey:: Unique
753charLIdKey        = mkPreludeMiscIdUnique 220
754stringLIdKey      = mkPreludeMiscIdUnique 221
755integerLIdKey     = mkPreludeMiscIdUnique 222
756intPrimLIdKey     = mkPreludeMiscIdUnique 223
757wordPrimLIdKey    = mkPreludeMiscIdUnique 224
758floatPrimLIdKey   = mkPreludeMiscIdUnique 225
759doublePrimLIdKey  = mkPreludeMiscIdUnique 226
760rationalLIdKey    = mkPreludeMiscIdUnique 227
761stringPrimLIdKey  = mkPreludeMiscIdUnique 228
762charPrimLIdKey    = mkPreludeMiscIdUnique 229
763
764liftStringIdKey :: Unique
765liftStringIdKey     = mkPreludeMiscIdUnique 230
766
767-- data Pat = ...
768litPIdKey, varPIdKey, tupPIdKey, unboxedTupPIdKey, unboxedSumPIdKey, conPIdKey,
769  infixPIdKey, tildePIdKey, bangPIdKey, asPIdKey, wildPIdKey, recPIdKey,
770  listPIdKey, sigPIdKey, viewPIdKey :: Unique
771litPIdKey         = mkPreludeMiscIdUnique 240
772varPIdKey         = mkPreludeMiscIdUnique 241
773tupPIdKey         = mkPreludeMiscIdUnique 242
774unboxedTupPIdKey  = mkPreludeMiscIdUnique 243
775unboxedSumPIdKey  = mkPreludeMiscIdUnique 244
776conPIdKey         = mkPreludeMiscIdUnique 245
777infixPIdKey       = mkPreludeMiscIdUnique 246
778tildePIdKey       = mkPreludeMiscIdUnique 247
779bangPIdKey        = mkPreludeMiscIdUnique 248
780asPIdKey          = mkPreludeMiscIdUnique 249
781wildPIdKey        = mkPreludeMiscIdUnique 250
782recPIdKey         = mkPreludeMiscIdUnique 251
783listPIdKey        = mkPreludeMiscIdUnique 252
784sigPIdKey         = mkPreludeMiscIdUnique 253
785viewPIdKey        = mkPreludeMiscIdUnique 254
786
787-- type FieldPat = ...
788fieldPatIdKey :: Unique
789fieldPatIdKey       = mkPreludeMiscIdUnique 260
790
791-- data Match = ...
792matchIdKey :: Unique
793matchIdKey          = mkPreludeMiscIdUnique 261
794
795-- data Clause = ...
796clauseIdKey :: Unique
797clauseIdKey         = mkPreludeMiscIdUnique 262
798
799
800-- data Exp = ...
801varEIdKey, conEIdKey, litEIdKey, appEIdKey, appTypeEIdKey, infixEIdKey,
802    infixAppIdKey, sectionLIdKey, sectionRIdKey, lamEIdKey, lamCaseEIdKey,
803    tupEIdKey, unboxedTupEIdKey, unboxedSumEIdKey, condEIdKey, multiIfEIdKey,
804    letEIdKey, caseEIdKey, doEIdKey, compEIdKey,
805    fromEIdKey, fromThenEIdKey, fromToEIdKey, fromThenToEIdKey,
806    listEIdKey, sigEIdKey, recConEIdKey, recUpdEIdKey, staticEIdKey,
807    unboundVarEIdKey, labelEIdKey, implicitParamVarEIdKey, mdoEIdKey :: Unique
808varEIdKey              = mkPreludeMiscIdUnique 270
809conEIdKey              = mkPreludeMiscIdUnique 271
810litEIdKey              = mkPreludeMiscIdUnique 272
811appEIdKey              = mkPreludeMiscIdUnique 273
812appTypeEIdKey          = mkPreludeMiscIdUnique 274
813infixEIdKey            = mkPreludeMiscIdUnique 275
814infixAppIdKey          = mkPreludeMiscIdUnique 276
815sectionLIdKey          = mkPreludeMiscIdUnique 277
816sectionRIdKey          = mkPreludeMiscIdUnique 278
817lamEIdKey              = mkPreludeMiscIdUnique 279
818lamCaseEIdKey          = mkPreludeMiscIdUnique 280
819tupEIdKey              = mkPreludeMiscIdUnique 281
820unboxedTupEIdKey       = mkPreludeMiscIdUnique 282
821unboxedSumEIdKey       = mkPreludeMiscIdUnique 283
822condEIdKey             = mkPreludeMiscIdUnique 284
823multiIfEIdKey          = mkPreludeMiscIdUnique 285
824letEIdKey              = mkPreludeMiscIdUnique 286
825caseEIdKey             = mkPreludeMiscIdUnique 287
826doEIdKey               = mkPreludeMiscIdUnique 288
827compEIdKey             = mkPreludeMiscIdUnique 289
828fromEIdKey             = mkPreludeMiscIdUnique 290
829fromThenEIdKey         = mkPreludeMiscIdUnique 291
830fromToEIdKey           = mkPreludeMiscIdUnique 292
831fromThenToEIdKey       = mkPreludeMiscIdUnique 293
832listEIdKey             = mkPreludeMiscIdUnique 294
833sigEIdKey              = mkPreludeMiscIdUnique 295
834recConEIdKey           = mkPreludeMiscIdUnique 296
835recUpdEIdKey           = mkPreludeMiscIdUnique 297
836staticEIdKey           = mkPreludeMiscIdUnique 298
837unboundVarEIdKey       = mkPreludeMiscIdUnique 299
838labelEIdKey            = mkPreludeMiscIdUnique 300
839implicitParamVarEIdKey = mkPreludeMiscIdUnique 301
840mdoEIdKey              = mkPreludeMiscIdUnique 302
841
842-- type FieldExp = ...
843fieldExpIdKey :: Unique
844fieldExpIdKey       = mkPreludeMiscIdUnique 305
845
846-- data Body = ...
847guardedBIdKey, normalBIdKey :: Unique
848guardedBIdKey     = mkPreludeMiscIdUnique 306
849normalBIdKey      = mkPreludeMiscIdUnique 307
850
851-- data Guard = ...
852normalGEIdKey, patGEIdKey :: Unique
853normalGEIdKey     = mkPreludeMiscIdUnique 308
854patGEIdKey        = mkPreludeMiscIdUnique 309
855
856-- data Stmt = ...
857bindSIdKey, letSIdKey, noBindSIdKey, parSIdKey, recSIdKey :: Unique
858bindSIdKey       = mkPreludeMiscIdUnique 310
859letSIdKey        = mkPreludeMiscIdUnique 311
860noBindSIdKey     = mkPreludeMiscIdUnique 312
861parSIdKey        = mkPreludeMiscIdUnique 313
862recSIdKey        = mkPreludeMiscIdUnique 314
863
864-- data Dec = ...
865funDIdKey, valDIdKey, dataDIdKey, newtypeDIdKey, tySynDIdKey, classDIdKey,
866    instanceWithOverlapDIdKey, instanceDIdKey, sigDIdKey, forImpDIdKey,
867    pragInlDIdKey, pragSpecDIdKey, pragSpecInlDIdKey, pragSpecInstDIdKey,
868    pragRuleDIdKey, pragAnnDIdKey, defaultSigDIdKey, dataFamilyDIdKey,
869    openTypeFamilyDIdKey, closedTypeFamilyDIdKey, dataInstDIdKey,
870    newtypeInstDIdKey, tySynInstDIdKey, standaloneDerivWithStrategyDIdKey,
871    infixLDIdKey, infixRDIdKey, infixNDIdKey, roleAnnotDIdKey, patSynDIdKey,
872    patSynSigDIdKey, pragCompleteDIdKey, implicitParamBindDIdKey,
873    kiSigDIdKey :: Unique
874funDIdKey                         = mkPreludeMiscIdUnique 320
875valDIdKey                         = mkPreludeMiscIdUnique 321
876dataDIdKey                        = mkPreludeMiscIdUnique 322
877newtypeDIdKey                     = mkPreludeMiscIdUnique 323
878tySynDIdKey                       = mkPreludeMiscIdUnique 324
879classDIdKey                       = mkPreludeMiscIdUnique 325
880instanceWithOverlapDIdKey         = mkPreludeMiscIdUnique 326
881instanceDIdKey                    = mkPreludeMiscIdUnique 327
882sigDIdKey                         = mkPreludeMiscIdUnique 328
883forImpDIdKey                      = mkPreludeMiscIdUnique 329
884pragInlDIdKey                     = mkPreludeMiscIdUnique 330
885pragSpecDIdKey                    = mkPreludeMiscIdUnique 331
886pragSpecInlDIdKey                 = mkPreludeMiscIdUnique 332
887pragSpecInstDIdKey                = mkPreludeMiscIdUnique 333
888pragRuleDIdKey                    = mkPreludeMiscIdUnique 334
889pragAnnDIdKey                     = mkPreludeMiscIdUnique 335
890dataFamilyDIdKey                  = mkPreludeMiscIdUnique 336
891openTypeFamilyDIdKey              = mkPreludeMiscIdUnique 337
892dataInstDIdKey                    = mkPreludeMiscIdUnique 338
893newtypeInstDIdKey                 = mkPreludeMiscIdUnique 339
894tySynInstDIdKey                   = mkPreludeMiscIdUnique 340
895closedTypeFamilyDIdKey            = mkPreludeMiscIdUnique 341
896infixLDIdKey                      = mkPreludeMiscIdUnique 342
897infixRDIdKey                      = mkPreludeMiscIdUnique 343
898infixNDIdKey                      = mkPreludeMiscIdUnique 344
899roleAnnotDIdKey                   = mkPreludeMiscIdUnique 345
900standaloneDerivWithStrategyDIdKey = mkPreludeMiscIdUnique 346
901defaultSigDIdKey                  = mkPreludeMiscIdUnique 347
902patSynDIdKey                      = mkPreludeMiscIdUnique 348
903patSynSigDIdKey                   = mkPreludeMiscIdUnique 349
904pragCompleteDIdKey                = mkPreludeMiscIdUnique 350
905implicitParamBindDIdKey           = mkPreludeMiscIdUnique 351
906kiSigDIdKey                       = mkPreludeMiscIdUnique 352
907
908-- type Cxt = ...
909cxtIdKey :: Unique
910cxtIdKey               = mkPreludeMiscIdUnique 361
911
912-- data SourceUnpackedness = ...
913noSourceUnpackednessKey, sourceNoUnpackKey, sourceUnpackKey :: Unique
914noSourceUnpackednessKey = mkPreludeMiscIdUnique 362
915sourceNoUnpackKey       = mkPreludeMiscIdUnique 363
916sourceUnpackKey         = mkPreludeMiscIdUnique 364
917
918-- data SourceStrictness = ...
919noSourceStrictnessKey, sourceLazyKey, sourceStrictKey :: Unique
920noSourceStrictnessKey   = mkPreludeMiscIdUnique 365
921sourceLazyKey           = mkPreludeMiscIdUnique 366
922sourceStrictKey         = mkPreludeMiscIdUnique 367
923
924-- data Con = ...
925normalCIdKey, recCIdKey, infixCIdKey, forallCIdKey, gadtCIdKey,
926  recGadtCIdKey :: Unique
927normalCIdKey      = mkPreludeMiscIdUnique 368
928recCIdKey         = mkPreludeMiscIdUnique 369
929infixCIdKey       = mkPreludeMiscIdUnique 370
930forallCIdKey      = mkPreludeMiscIdUnique 371
931gadtCIdKey        = mkPreludeMiscIdUnique 372
932recGadtCIdKey     = mkPreludeMiscIdUnique 373
933
934-- data Bang = ...
935bangIdKey :: Unique
936bangIdKey         = mkPreludeMiscIdUnique 374
937
938-- type BangType = ...
939bangTKey :: Unique
940bangTKey          = mkPreludeMiscIdUnique 375
941
942-- type VarBangType = ...
943varBangTKey :: Unique
944varBangTKey       = mkPreludeMiscIdUnique 376
945
946-- data PatSynDir = ...
947unidirPatSynIdKey, implBidirPatSynIdKey, explBidirPatSynIdKey :: Unique
948unidirPatSynIdKey    = mkPreludeMiscIdUnique 377
949implBidirPatSynIdKey = mkPreludeMiscIdUnique 378
950explBidirPatSynIdKey = mkPreludeMiscIdUnique 379
951
952-- data PatSynArgs = ...
953prefixPatSynIdKey, infixPatSynIdKey, recordPatSynIdKey :: Unique
954prefixPatSynIdKey = mkPreludeMiscIdUnique 380
955infixPatSynIdKey  = mkPreludeMiscIdUnique 381
956recordPatSynIdKey = mkPreludeMiscIdUnique 382
957
958-- data Type = ...
959forallTIdKey, forallVisTIdKey, varTIdKey, conTIdKey, tupleTIdKey,
960    unboxedTupleTIdKey, unboxedSumTIdKey, arrowTIdKey, listTIdKey, appTIdKey,
961    appKindTIdKey, sigTIdKey, equalityTIdKey, litTIdKey, promotedTIdKey,
962    promotedTupleTIdKey, promotedNilTIdKey, promotedConsTIdKey,
963    wildCardTIdKey, implicitParamTIdKey, infixTIdKey :: Unique
964forallTIdKey        = mkPreludeMiscIdUnique 390
965forallVisTIdKey     = mkPreludeMiscIdUnique 391
966varTIdKey           = mkPreludeMiscIdUnique 392
967conTIdKey           = mkPreludeMiscIdUnique 393
968tupleTIdKey         = mkPreludeMiscIdUnique 394
969unboxedTupleTIdKey  = mkPreludeMiscIdUnique 395
970unboxedSumTIdKey    = mkPreludeMiscIdUnique 396
971arrowTIdKey         = mkPreludeMiscIdUnique 397
972listTIdKey          = mkPreludeMiscIdUnique 398
973appTIdKey           = mkPreludeMiscIdUnique 399
974appKindTIdKey       = mkPreludeMiscIdUnique 400
975sigTIdKey           = mkPreludeMiscIdUnique 401
976equalityTIdKey      = mkPreludeMiscIdUnique 402
977litTIdKey           = mkPreludeMiscIdUnique 403
978promotedTIdKey      = mkPreludeMiscIdUnique 404
979promotedTupleTIdKey = mkPreludeMiscIdUnique 405
980promotedNilTIdKey   = mkPreludeMiscIdUnique 406
981promotedConsTIdKey  = mkPreludeMiscIdUnique 407
982wildCardTIdKey      = mkPreludeMiscIdUnique 408
983implicitParamTIdKey = mkPreludeMiscIdUnique 409
984infixTIdKey         = mkPreludeMiscIdUnique 410
985
986-- data TyLit = ...
987numTyLitIdKey, strTyLitIdKey :: Unique
988numTyLitIdKey = mkPreludeMiscIdUnique 411
989strTyLitIdKey = mkPreludeMiscIdUnique 412
990
991-- data TyVarBndr = ...
992plainTVIdKey, kindedTVIdKey :: Unique
993plainTVIdKey       = mkPreludeMiscIdUnique 413
994kindedTVIdKey      = mkPreludeMiscIdUnique 414
995
996-- data Role = ...
997nominalRIdKey, representationalRIdKey, phantomRIdKey, inferRIdKey :: Unique
998nominalRIdKey          = mkPreludeMiscIdUnique 415
999representationalRIdKey = mkPreludeMiscIdUnique 416
1000phantomRIdKey          = mkPreludeMiscIdUnique 417
1001inferRIdKey            = mkPreludeMiscIdUnique 418
1002
1003-- data Kind = ...
1004varKIdKey, conKIdKey, tupleKIdKey, arrowKIdKey, listKIdKey, appKIdKey,
1005  starKIdKey, constraintKIdKey :: Unique
1006varKIdKey         = mkPreludeMiscIdUnique 419
1007conKIdKey         = mkPreludeMiscIdUnique 420
1008tupleKIdKey       = mkPreludeMiscIdUnique 421
1009arrowKIdKey       = mkPreludeMiscIdUnique 422
1010listKIdKey        = mkPreludeMiscIdUnique 423
1011appKIdKey         = mkPreludeMiscIdUnique 424
1012starKIdKey        = mkPreludeMiscIdUnique 425
1013constraintKIdKey  = mkPreludeMiscIdUnique 426
1014
1015-- data FamilyResultSig = ...
1016noSigIdKey, kindSigIdKey, tyVarSigIdKey :: Unique
1017noSigIdKey        = mkPreludeMiscIdUnique 427
1018kindSigIdKey      = mkPreludeMiscIdUnique 428
1019tyVarSigIdKey     = mkPreludeMiscIdUnique 429
1020
1021-- data InjectivityAnn = ...
1022injectivityAnnIdKey :: Unique
1023injectivityAnnIdKey = mkPreludeMiscIdUnique 430
1024
1025-- data Callconv = ...
1026cCallIdKey, stdCallIdKey, cApiCallIdKey, primCallIdKey,
1027  javaScriptCallIdKey :: Unique
1028cCallIdKey          = mkPreludeMiscIdUnique 431
1029stdCallIdKey        = mkPreludeMiscIdUnique 432
1030cApiCallIdKey       = mkPreludeMiscIdUnique 433
1031primCallIdKey       = mkPreludeMiscIdUnique 434
1032javaScriptCallIdKey = mkPreludeMiscIdUnique 435
1033
1034-- data Safety = ...
1035unsafeIdKey, safeIdKey, interruptibleIdKey :: Unique
1036unsafeIdKey        = mkPreludeMiscIdUnique 440
1037safeIdKey          = mkPreludeMiscIdUnique 441
1038interruptibleIdKey = mkPreludeMiscIdUnique 442
1039
1040-- data FunDep = ...
1041funDepIdKey :: Unique
1042funDepIdKey = mkPreludeMiscIdUnique 445
1043
1044-- data TySynEqn = ...
1045tySynEqnIdKey :: Unique
1046tySynEqnIdKey = mkPreludeMiscIdUnique 460
1047
1048-- quasiquoting
1049quoteExpKey, quotePatKey, quoteDecKey, quoteTypeKey :: Unique
1050quoteExpKey  = mkPreludeMiscIdUnique 470
1051quotePatKey  = mkPreludeMiscIdUnique 471
1052quoteDecKey  = mkPreludeMiscIdUnique 472
1053quoteTypeKey = mkPreludeMiscIdUnique 473
1054
1055-- data RuleBndr = ...
1056ruleVarIdKey, typedRuleVarIdKey :: Unique
1057ruleVarIdKey      = mkPreludeMiscIdUnique 480
1058typedRuleVarIdKey = mkPreludeMiscIdUnique 481
1059
1060-- data AnnTarget = ...
1061valueAnnotationIdKey, typeAnnotationIdKey, moduleAnnotationIdKey :: Unique
1062valueAnnotationIdKey  = mkPreludeMiscIdUnique 490
1063typeAnnotationIdKey   = mkPreludeMiscIdUnique 491
1064moduleAnnotationIdKey = mkPreludeMiscIdUnique 492
1065
1066-- type DerivPred = ...
1067derivClauseIdKey :: Unique
1068derivClauseIdKey = mkPreludeMiscIdUnique 493
1069
1070-- data DerivStrategy = ...
1071stockStrategyIdKey, anyclassStrategyIdKey, newtypeStrategyIdKey,
1072  viaStrategyIdKey :: Unique
1073stockStrategyIdKey    = mkPreludeDataConUnique 494
1074anyclassStrategyIdKey = mkPreludeDataConUnique 495
1075newtypeStrategyIdKey  = mkPreludeDataConUnique 496
1076viaStrategyIdKey      = mkPreludeDataConUnique 497
1077
1078{-
1079************************************************************************
1080*                                                                      *
1081                        RdrNames
1082*                                                                      *
1083************************************************************************
1084-}
1085
1086lift_RDR, liftTyped_RDR, mkNameG_dRDR, mkNameG_vRDR :: RdrName
1087lift_RDR     = nameRdrName liftName
1088liftTyped_RDR = nameRdrName liftTypedName
1089mkNameG_dRDR = nameRdrName mkNameG_dName
1090mkNameG_vRDR = nameRdrName mkNameG_vName
1091
1092-- data Exp = ...
1093conE_RDR, litE_RDR, appE_RDR, infixApp_RDR :: RdrName
1094conE_RDR     = nameRdrName conEName
1095litE_RDR     = nameRdrName litEName
1096appE_RDR     = nameRdrName appEName
1097infixApp_RDR = nameRdrName infixAppName
1098
1099-- data Lit = ...
1100stringL_RDR, intPrimL_RDR, wordPrimL_RDR, floatPrimL_RDR,
1101    doublePrimL_RDR, stringPrimL_RDR, charPrimL_RDR :: RdrName
1102stringL_RDR     = nameRdrName stringLName
1103intPrimL_RDR    = nameRdrName intPrimLName
1104wordPrimL_RDR   = nameRdrName wordPrimLName
1105floatPrimL_RDR  = nameRdrName floatPrimLName
1106doublePrimL_RDR = nameRdrName doublePrimLName
1107stringPrimL_RDR = nameRdrName stringPrimLName
1108charPrimL_RDR   = nameRdrName charPrimLName
1109