never executed always true always false
1 {-# LANGUAGE TypeFamilies #-}
2 {-# LANGUAGE StandaloneDeriving #-}
3 {-# LANGUAGE DeriveDataTypeable #-}
4 {-# LANGUAGE FlexibleContexts #-}
5 {-# LANGUAGE FlexibleInstances #-}
6 {-# LANGUAGE UndecidableInstances #-}
7 {-# OPTIONS_GHC -fno-warn-orphans #-}
8
9 -- This module contains exclusively Data instances, which are going to be slow
10 -- no matter what we do. Furthermore, they are incredibly slow to compile with
11 -- optimisation (see #9557). Consequently we compile this with -O0.
12 -- See #18254.
13 {-# OPTIONS_GHC -O0 #-}
14
15 module GHC.Hs.Instances where
16
17 -- This module defines the Data instances for the hsSyn AST.
18
19 -- It happens here to avoid massive constraint types on the AST with concomitant
20 -- slow GHC bootstrap times.
21
22 -- UndecidableInstances ?
23
24 import Data.Data hiding ( Fixity )
25
26 import GHC.Prelude
27 import GHC.Hs.Extension
28 import GHC.Hs.Binds
29 import GHC.Hs.Decls
30 import GHC.Hs.Expr
31 import GHC.Hs.Lit
32 import GHC.Hs.Type
33 import GHC.Hs.Pat
34 import GHC.Hs.ImpExp
35 import GHC.Parser.Annotation
36
37 -- ---------------------------------------------------------------------
38 -- Data derivations from GHC.Hs-----------------------------------------
39
40 -- ---------------------------------------------------------------------
41 -- Data derivations from GHC.Hs.Binds ----------------------------------
42
43 -- deriving instance (DataIdLR pL pR) => Data (HsLocalBindsLR pL pR)
44 deriving instance Data (HsLocalBindsLR GhcPs GhcPs)
45 deriving instance Data (HsLocalBindsLR GhcPs GhcRn)
46 deriving instance Data (HsLocalBindsLR GhcRn GhcRn)
47 deriving instance Data (HsLocalBindsLR GhcTc GhcTc)
48
49 -- deriving instance (DataIdLR pL pR) => Data (HsValBindsLR pL pR)
50 deriving instance Data (HsValBindsLR GhcPs GhcPs)
51 deriving instance Data (HsValBindsLR GhcPs GhcRn)
52 deriving instance Data (HsValBindsLR GhcRn GhcRn)
53 deriving instance Data (HsValBindsLR GhcTc GhcTc)
54
55 -- deriving instance (DataIdLR pL pL) => Data (NHsValBindsLR pL)
56 deriving instance Data (NHsValBindsLR GhcPs)
57 deriving instance Data (NHsValBindsLR GhcRn)
58 deriving instance Data (NHsValBindsLR GhcTc)
59
60 -- deriving instance (DataIdLR pL pR) => Data (HsBindLR pL pR)
61 deriving instance Data (HsBindLR GhcPs GhcPs)
62 deriving instance Data (HsBindLR GhcPs GhcRn)
63 deriving instance Data (HsBindLR GhcRn GhcRn)
64 deriving instance Data (HsBindLR GhcTc GhcTc)
65
66 -- deriving instance (DataId p) => Data (ABExport p)
67 deriving instance Data (ABExport GhcPs)
68 deriving instance Data (ABExport GhcRn)
69 deriving instance Data (ABExport GhcTc)
70
71 -- deriving instance DataId p => Data (RecordPatSynField p)
72 deriving instance Data (RecordPatSynField GhcPs)
73 deriving instance Data (RecordPatSynField GhcRn)
74 deriving instance Data (RecordPatSynField GhcTc)
75
76 -- deriving instance (DataIdLR pL pR) => Data (PatSynBind pL pR)
77 deriving instance Data (PatSynBind GhcPs GhcPs)
78 deriving instance Data (PatSynBind GhcPs GhcRn)
79 deriving instance Data (PatSynBind GhcRn GhcRn)
80 deriving instance Data (PatSynBind GhcTc GhcTc)
81
82 -- deriving instance (DataIdLR p p) => Data (HsIPBinds p)
83 deriving instance Data (HsIPBinds GhcPs)
84 deriving instance Data (HsIPBinds GhcRn)
85 deriving instance Data (HsIPBinds GhcTc)
86
87 -- deriving instance (DataIdLR p p) => Data (IPBind p)
88 deriving instance Data (IPBind GhcPs)
89 deriving instance Data (IPBind GhcRn)
90 deriving instance Data (IPBind GhcTc)
91
92 -- deriving instance (DataIdLR p p) => Data (Sig p)
93 deriving instance Data (Sig GhcPs)
94 deriving instance Data (Sig GhcRn)
95 deriving instance Data (Sig GhcTc)
96
97 -- deriving instance (DataId p) => Data (FixitySig p)
98 deriving instance Data (FixitySig GhcPs)
99 deriving instance Data (FixitySig GhcRn)
100 deriving instance Data (FixitySig GhcTc)
101
102 -- deriving instance (DataId p) => Data (StandaloneKindSig p)
103 deriving instance Data (StandaloneKindSig GhcPs)
104 deriving instance Data (StandaloneKindSig GhcRn)
105 deriving instance Data (StandaloneKindSig GhcTc)
106
107 -- deriving instance (DataIdLR p p) => Data (HsPatSynDir p)
108 deriving instance Data (HsPatSynDir GhcPs)
109 deriving instance Data (HsPatSynDir GhcRn)
110 deriving instance Data (HsPatSynDir GhcTc)
111
112 -- ---------------------------------------------------------------------
113 -- Data derivations from GHC.Hs.Decls ----------------------------------
114
115 -- deriving instance (DataIdLR p p) => Data (HsDecl p)
116 deriving instance Data (HsDecl GhcPs)
117 deriving instance Data (HsDecl GhcRn)
118 deriving instance Data (HsDecl GhcTc)
119
120 -- deriving instance (DataIdLR p p) => Data (HsGroup p)
121 deriving instance Data (HsGroup GhcPs)
122 deriving instance Data (HsGroup GhcRn)
123 deriving instance Data (HsGroup GhcTc)
124
125 -- deriving instance (DataIdLR p p) => Data (SpliceDecl p)
126 deriving instance Data (SpliceDecl GhcPs)
127 deriving instance Data (SpliceDecl GhcRn)
128 deriving instance Data (SpliceDecl GhcTc)
129
130 -- deriving instance (DataIdLR p p) => Data (TyClDecl p)
131 deriving instance Data (TyClDecl GhcPs)
132 deriving instance Data (TyClDecl GhcRn)
133 deriving instance Data (TyClDecl GhcTc)
134
135 -- deriving instance (DataIdLR p p) => Data (FunDep p)
136 deriving instance Data (FunDep GhcPs)
137 deriving instance Data (FunDep GhcRn)
138 deriving instance Data (FunDep GhcTc)
139
140 -- deriving instance (DataIdLR p p) => Data (TyClGroup p)
141 deriving instance Data (TyClGroup GhcPs)
142 deriving instance Data (TyClGroup GhcRn)
143 deriving instance Data (TyClGroup GhcTc)
144
145 -- deriving instance (DataIdLR p p) => Data (FamilyResultSig p)
146 deriving instance Data (FamilyResultSig GhcPs)
147 deriving instance Data (FamilyResultSig GhcRn)
148 deriving instance Data (FamilyResultSig GhcTc)
149
150 -- deriving instance (DataIdLR p p) => Data (FamilyDecl p)
151 deriving instance Data (FamilyDecl GhcPs)
152 deriving instance Data (FamilyDecl GhcRn)
153 deriving instance Data (FamilyDecl GhcTc)
154
155 -- deriving instance (DataIdLR p p) => Data (InjectivityAnn p)
156 deriving instance Data (InjectivityAnn GhcPs)
157 deriving instance Data (InjectivityAnn GhcRn)
158 deriving instance Data (InjectivityAnn GhcTc)
159
160 -- deriving instance (DataIdLR p p) => Data (FamilyInfo p)
161 deriving instance Data (FamilyInfo GhcPs)
162 deriving instance Data (FamilyInfo GhcRn)
163 deriving instance Data (FamilyInfo GhcTc)
164
165 -- deriving instance (DataIdLR p p) => Data (HsDataDefn p)
166 deriving instance Data (HsDataDefn GhcPs)
167 deriving instance Data (HsDataDefn GhcRn)
168 deriving instance Data (HsDataDefn GhcTc)
169
170 -- deriving instance (DataIdLR p p) => Data (HsDerivingClause p)
171 deriving instance Data (HsDerivingClause GhcPs)
172 deriving instance Data (HsDerivingClause GhcRn)
173 deriving instance Data (HsDerivingClause GhcTc)
174
175 -- deriving instance DataIdLR p p => Data (DerivClauseTys p)
176 deriving instance Data (DerivClauseTys GhcPs)
177 deriving instance Data (DerivClauseTys GhcRn)
178 deriving instance Data (DerivClauseTys GhcTc)
179
180 -- deriving instance (DataIdLR p p) => Data (ConDecl p)
181 deriving instance Data (ConDecl GhcPs)
182 deriving instance Data (ConDecl GhcRn)
183 deriving instance Data (ConDecl GhcTc)
184
185 -- deriving instance DataIdLR p p => Data (HsConDeclGADTDetails p)
186 deriving instance Data (HsConDeclGADTDetails GhcPs)
187 deriving instance Data (HsConDeclGADTDetails GhcRn)
188 deriving instance Data (HsConDeclGADTDetails GhcTc)
189
190 -- deriving instance DataIdLR p p => Data (TyFamInstDecl p)
191 deriving instance Data (TyFamInstDecl GhcPs)
192 deriving instance Data (TyFamInstDecl GhcRn)
193 deriving instance Data (TyFamInstDecl GhcTc)
194
195 -- deriving instance DataIdLR p p => Data (DataFamInstDecl p)
196 deriving instance Data (DataFamInstDecl GhcPs)
197 deriving instance Data (DataFamInstDecl GhcRn)
198 deriving instance Data (DataFamInstDecl GhcTc)
199
200 -- deriving instance (DataIdLR p p,Data rhs)=>Data (FamEqn p rhs)
201 deriving instance Data rhs => Data (FamEqn GhcPs rhs)
202 deriving instance Data rhs => Data (FamEqn GhcRn rhs)
203 deriving instance Data rhs => Data (FamEqn GhcTc rhs)
204
205 -- deriving instance (DataIdLR p p) => Data (ClsInstDecl p)
206 deriving instance Data (ClsInstDecl GhcPs)
207 deriving instance Data (ClsInstDecl GhcRn)
208 deriving instance Data (ClsInstDecl GhcTc)
209
210 -- deriving instance (DataIdLR p p) => Data (InstDecl p)
211 deriving instance Data (InstDecl GhcPs)
212 deriving instance Data (InstDecl GhcRn)
213 deriving instance Data (InstDecl GhcTc)
214
215 -- deriving instance (DataIdLR p p) => Data (DerivDecl p)
216 deriving instance Data (DerivDecl GhcPs)
217 deriving instance Data (DerivDecl GhcRn)
218 deriving instance Data (DerivDecl GhcTc)
219
220 -- deriving instance (DataIdLR p p) => Data (DerivStrategy p)
221 deriving instance Data (DerivStrategy GhcPs)
222 deriving instance Data (DerivStrategy GhcRn)
223 deriving instance Data (DerivStrategy GhcTc)
224
225 -- deriving instance (DataIdLR p p) => Data (DefaultDecl p)
226 deriving instance Data (DefaultDecl GhcPs)
227 deriving instance Data (DefaultDecl GhcRn)
228 deriving instance Data (DefaultDecl GhcTc)
229
230 -- deriving instance (DataIdLR p p) => Data (ForeignDecl p)
231 deriving instance Data (ForeignDecl GhcPs)
232 deriving instance Data (ForeignDecl GhcRn)
233 deriving instance Data (ForeignDecl GhcTc)
234
235 -- deriving instance (DataIdLR p p) => Data (RuleDecls p)
236 deriving instance Data (RuleDecls GhcPs)
237 deriving instance Data (RuleDecls GhcRn)
238 deriving instance Data (RuleDecls GhcTc)
239
240 -- deriving instance (DataIdLR p p) => Data (RuleDecl p)
241 deriving instance Data (RuleDecl GhcPs)
242 deriving instance Data (RuleDecl GhcRn)
243 deriving instance Data (RuleDecl GhcTc)
244
245 -- deriving instance (DataIdLR p p) => Data (RuleBndr p)
246 deriving instance Data (RuleBndr GhcPs)
247 deriving instance Data (RuleBndr GhcRn)
248 deriving instance Data (RuleBndr GhcTc)
249
250 -- deriving instance (DataId p) => Data (WarnDecls p)
251 deriving instance Data (WarnDecls GhcPs)
252 deriving instance Data (WarnDecls GhcRn)
253 deriving instance Data (WarnDecls GhcTc)
254
255 -- deriving instance (DataId p) => Data (WarnDecl p)
256 deriving instance Data (WarnDecl GhcPs)
257 deriving instance Data (WarnDecl GhcRn)
258 deriving instance Data (WarnDecl GhcTc)
259
260 -- deriving instance (DataIdLR p p) => Data (AnnDecl p)
261 deriving instance Data (AnnProvenance GhcPs)
262 deriving instance Data (AnnProvenance GhcRn)
263 deriving instance Data (AnnProvenance GhcTc)
264
265 deriving instance Data (AnnDecl GhcPs)
266 deriving instance Data (AnnDecl GhcRn)
267 deriving instance Data (AnnDecl GhcTc)
268
269 -- deriving instance (DataId p) => Data (RoleAnnotDecl p)
270 deriving instance Data (RoleAnnotDecl GhcPs)
271 deriving instance Data (RoleAnnotDecl GhcRn)
272 deriving instance Data (RoleAnnotDecl GhcTc)
273
274 -- ---------------------------------------------------------------------
275 -- Data derivations from GHC.Hs.Expr -----------------------------------
276
277 deriving instance Data (FieldLabelStrings GhcPs)
278 deriving instance Data (FieldLabelStrings GhcRn)
279 deriving instance Data (FieldLabelStrings GhcTc)
280
281 deriving instance Data (DotFieldOcc GhcPs)
282 deriving instance Data (DotFieldOcc GhcRn)
283 deriving instance Data (DotFieldOcc GhcTc)
284
285 -- deriving instance (DataIdLR p p) => Data (HsPragE p)
286 deriving instance Data (HsPragE GhcPs)
287 deriving instance Data (HsPragE GhcRn)
288 deriving instance Data (HsPragE GhcTc)
289
290 -- deriving instance (DataIdLR p p) => Data (HsExpr p)
291 deriving instance Data (HsExpr GhcPs)
292 deriving instance Data (HsExpr GhcRn)
293 deriving instance Data (HsExpr GhcTc)
294
295 -- deriving instance (DataIdLR p p) => Data (HsTupArg p)
296 deriving instance Data (HsTupArg GhcPs)
297 deriving instance Data (HsTupArg GhcRn)
298 deriving instance Data (HsTupArg GhcTc)
299
300 -- deriving instance (DataIdLR p p) => Data (HsCmd p)
301 deriving instance Data (HsCmd GhcPs)
302 deriving instance Data (HsCmd GhcRn)
303 deriving instance Data (HsCmd GhcTc)
304
305 -- deriving instance (DataIdLR p p) => Data (HsCmdTop p)
306 deriving instance Data (HsCmdTop GhcPs)
307 deriving instance Data (HsCmdTop GhcRn)
308 deriving instance Data (HsCmdTop GhcTc)
309
310 -- deriving instance (DataIdLR p p,Data body) => Data (MatchGroup p body)
311 deriving instance Data (MatchGroup GhcPs (LocatedA (HsExpr GhcPs)))
312 deriving instance Data (MatchGroup GhcRn (LocatedA (HsExpr GhcRn)))
313 deriving instance Data (MatchGroup GhcTc (LocatedA (HsExpr GhcTc)))
314 deriving instance Data (MatchGroup GhcPs (LocatedA (HsCmd GhcPs)))
315 deriving instance Data (MatchGroup GhcRn (LocatedA (HsCmd GhcRn)))
316 deriving instance Data (MatchGroup GhcTc (LocatedA (HsCmd GhcTc)))
317
318 -- deriving instance (DataIdLR p p,Data body) => Data (Match p body)
319 deriving instance Data (Match GhcPs (LocatedA (HsExpr GhcPs)))
320 deriving instance Data (Match GhcRn (LocatedA (HsExpr GhcRn)))
321 deriving instance Data (Match GhcTc (LocatedA (HsExpr GhcTc)))
322 deriving instance Data (Match GhcPs (LocatedA (HsCmd GhcPs)))
323 deriving instance Data (Match GhcRn (LocatedA (HsCmd GhcRn)))
324 deriving instance Data (Match GhcTc (LocatedA (HsCmd GhcTc)))
325
326 -- deriving instance (DataIdLR p p,Data body) => Data (GRHSs p body)
327 deriving instance Data (GRHSs GhcPs (LocatedA (HsExpr GhcPs)))
328 deriving instance Data (GRHSs GhcRn (LocatedA (HsExpr GhcRn)))
329 deriving instance Data (GRHSs GhcTc (LocatedA (HsExpr GhcTc)))
330 deriving instance Data (GRHSs GhcPs (LocatedA (HsCmd GhcPs)))
331 deriving instance Data (GRHSs GhcRn (LocatedA (HsCmd GhcRn)))
332 deriving instance Data (GRHSs GhcTc (LocatedA (HsCmd GhcTc)))
333
334 -- deriving instance (DataIdLR p p,Data body) => Data (GRHS p body)
335 deriving instance Data (GRHS GhcPs (LocatedA (HsExpr GhcPs)))
336 deriving instance Data (GRHS GhcRn (LocatedA (HsExpr GhcRn)))
337 deriving instance Data (GRHS GhcTc (LocatedA (HsExpr GhcTc)))
338 deriving instance Data (GRHS GhcPs (LocatedA (HsCmd GhcPs)))
339 deriving instance Data (GRHS GhcRn (LocatedA (HsCmd GhcRn)))
340 deriving instance Data (GRHS GhcTc (LocatedA (HsCmd GhcTc)))
341
342 -- deriving instance (DataIdLR p p,Data body) => Data (StmtLR p p body)
343 deriving instance Data (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))
344 deriving instance Data (StmtLR GhcPs GhcRn (LocatedA (HsExpr GhcRn)))
345 deriving instance Data (StmtLR GhcRn GhcRn (LocatedA (HsExpr GhcRn)))
346 deriving instance Data (StmtLR GhcTc GhcTc (LocatedA (HsExpr GhcTc)))
347 deriving instance Data (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))
348 deriving instance Data (StmtLR GhcPs GhcRn (LocatedA (HsCmd GhcRn)))
349 deriving instance Data (StmtLR GhcRn GhcRn (LocatedA (HsCmd GhcRn)))
350 deriving instance Data (StmtLR GhcTc GhcTc (LocatedA (HsCmd GhcTc)))
351
352 deriving instance Data RecStmtTc
353
354 -- deriving instance (DataIdLR p p) => Data (ParStmtBlock p p)
355 deriving instance Data (ParStmtBlock GhcPs GhcPs)
356 deriving instance Data (ParStmtBlock GhcPs GhcRn)
357 deriving instance Data (ParStmtBlock GhcRn GhcRn)
358 deriving instance Data (ParStmtBlock GhcTc GhcTc)
359
360 -- deriving instance (DataIdLR p p) => Data (ApplicativeArg p)
361 deriving instance Data (ApplicativeArg GhcPs)
362 deriving instance Data (ApplicativeArg GhcRn)
363 deriving instance Data (ApplicativeArg GhcTc)
364
365 deriving instance Data (HsStmtContext GhcPs)
366 deriving instance Data (HsStmtContext GhcRn)
367 deriving instance Data (HsStmtContext GhcTc)
368
369 deriving instance Data HsArrowMatchContext
370
371 deriving instance Data HsDoFlavour
372
373 deriving instance Data (HsMatchContext GhcPs)
374 deriving instance Data (HsMatchContext GhcRn)
375 deriving instance Data (HsMatchContext GhcTc)
376
377 -- deriving instance (DataIdLR p p) => Data (HsSplice p)
378 deriving instance Data (HsSplice GhcPs)
379 deriving instance Data (HsSplice GhcRn)
380 deriving instance Data (HsSplice GhcTc)
381
382 -- deriving instance (DataIdLR p p) => Data (HsSplicedThing p)
383 deriving instance Data (HsSplicedThing GhcPs)
384 deriving instance Data (HsSplicedThing GhcRn)
385 deriving instance Data (HsSplicedThing GhcTc)
386
387 -- deriving instance (DataIdLR p p) => Data (HsBracket p)
388 deriving instance Data (HsBracket GhcPs)
389 deriving instance Data (HsBracket GhcRn)
390 deriving instance Data (HsBracket GhcTc)
391
392 -- deriving instance (DataIdLR p p) => Data (ArithSeqInfo p)
393 deriving instance Data (ArithSeqInfo GhcPs)
394 deriving instance Data (ArithSeqInfo GhcRn)
395 deriving instance Data (ArithSeqInfo GhcTc)
396
397 deriving instance Data RecordUpdTc
398 deriving instance Data CmdTopTc
399 deriving instance Data PendingRnSplice
400 deriving instance Data PendingTcSplice
401 deriving instance Data SyntaxExprRn
402 deriving instance Data SyntaxExprTc
403
404 deriving instance Data XBindStmtRn
405 deriving instance Data XBindStmtTc
406
407 -- ---------------------------------------------------------------------
408 -- Data derivations from GHC.Hs.Lit ------------------------------------
409
410 -- deriving instance (DataId p) => Data (HsLit p)
411 deriving instance Data (HsLit GhcPs)
412 deriving instance Data (HsLit GhcRn)
413 deriving instance Data (HsLit GhcTc)
414
415 -- deriving instance (DataIdLR p p) => Data (HsOverLit p)
416 deriving instance Data (HsOverLit GhcPs)
417 deriving instance Data (HsOverLit GhcRn)
418 deriving instance Data (HsOverLit GhcTc)
419
420 deriving instance Data OverLitRn
421 deriving instance Data OverLitTc
422
423 -- ---------------------------------------------------------------------
424 -- Data derivations from GHC.Hs.Pat ------------------------------------
425
426 -- deriving instance (DataIdLR p p) => Data (Pat p)
427 deriving instance Data (Pat GhcPs)
428 deriving instance Data (Pat GhcRn)
429 deriving instance Data (Pat GhcTc)
430
431 deriving instance Data ConPatTc
432
433 deriving instance (Data a, Data b) => Data (HsFieldBind a b)
434
435 deriving instance (Data body) => Data (HsRecFields GhcPs body)
436 deriving instance (Data body) => Data (HsRecFields GhcRn body)
437 deriving instance (Data body) => Data (HsRecFields GhcTc body)
438
439 -- ---------------------------------------------------------------------
440 -- Data derivations from GHC.Hs.Type ----------------------------------
441
442 -- deriving instance (DataIdLR p p) => Data (LHsQTyVars p)
443 deriving instance Data (LHsQTyVars GhcPs)
444 deriving instance Data (LHsQTyVars GhcRn)
445 deriving instance Data (LHsQTyVars GhcTc)
446
447 -- deriving instance (Data flag, DataIdLR p p) => Data (HsOuterTyVarBndrs p)
448 deriving instance Data flag => Data (HsOuterTyVarBndrs flag GhcPs)
449 deriving instance Data flag => Data (HsOuterTyVarBndrs flag GhcRn)
450 deriving instance Data flag => Data (HsOuterTyVarBndrs flag GhcTc)
451
452 -- deriving instance (DataIdLR p p) => Data (HsSigType p)
453 deriving instance Data (HsSigType GhcPs)
454 deriving instance Data (HsSigType GhcRn)
455 deriving instance Data (HsSigType GhcTc)
456
457 -- deriving instance (DataIdLR p p, Data thing) =>Data (HsWildCardBndrs p thing)
458 deriving instance (Data thing) => Data (HsWildCardBndrs GhcPs thing)
459 deriving instance (Data thing) => Data (HsWildCardBndrs GhcRn thing)
460 deriving instance (Data thing) => Data (HsWildCardBndrs GhcTc thing)
461
462 -- deriving instance (DataIdLR p p) => Data (HsPatSigType p)
463 deriving instance Data (HsPatSigType GhcPs)
464 deriving instance Data (HsPatSigType GhcRn)
465 deriving instance Data (HsPatSigType GhcTc)
466
467 -- deriving instance (DataIdLR p p) => Data (HsForAllTelescope p)
468 deriving instance Data (HsForAllTelescope GhcPs)
469 deriving instance Data (HsForAllTelescope GhcRn)
470 deriving instance Data (HsForAllTelescope GhcTc)
471
472 -- deriving instance (DataIdLR p p) => Data (HsTyVarBndr p)
473 deriving instance (Data flag) => Data (HsTyVarBndr flag GhcPs)
474 deriving instance (Data flag) => Data (HsTyVarBndr flag GhcRn)
475 deriving instance (Data flag) => Data (HsTyVarBndr flag GhcTc)
476
477 -- deriving instance (DataIdLR p p) => Data (HsType p)
478 deriving instance Data (HsType GhcPs)
479 deriving instance Data (HsType GhcRn)
480 deriving instance Data (HsType GhcTc)
481
482 -- deriving instance Data (HsLinearArrowTokens p)
483 deriving instance Data (HsLinearArrowTokens GhcPs)
484 deriving instance Data (HsLinearArrowTokens GhcRn)
485 deriving instance Data (HsLinearArrowTokens GhcTc)
486
487 -- deriving instance (DataIdLR p p) => Data (HsArrow p)
488 deriving instance Data (HsArrow GhcPs)
489 deriving instance Data (HsArrow GhcRn)
490 deriving instance Data (HsArrow GhcTc)
491
492 -- deriving instance (DataIdLR p p) => Data (HsScaled p a)
493 deriving instance Data thing => Data (HsScaled GhcPs thing)
494 deriving instance Data thing => Data (HsScaled GhcRn thing)
495 deriving instance Data thing => Data (HsScaled GhcTc thing)
496
497 deriving instance (Data a, Data b) => Data (HsArg a b)
498 -- deriving instance Data (HsArg (Located (HsType GhcPs)) (Located (HsKind GhcPs)))
499 -- deriving instance Data (HsArg (Located (HsType GhcRn)) (Located (HsKind GhcRn)))
500 -- deriving instance Data (HsArg (Located (HsType GhcTc)) (Located (HsKind GhcTc)))
501
502 -- deriving instance (DataIdLR p p) => Data (ConDeclField p)
503 deriving instance Data (ConDeclField GhcPs)
504 deriving instance Data (ConDeclField GhcRn)
505 deriving instance Data (ConDeclField GhcTc)
506
507 -- deriving instance (DataId p) => Data (FieldOcc p)
508 deriving instance Data (FieldOcc GhcPs)
509 deriving instance Data (FieldOcc GhcRn)
510 deriving instance Data (FieldOcc GhcTc)
511
512 -- deriving instance DataId p => Data (AmbiguousFieldOcc p)
513 deriving instance Data (AmbiguousFieldOcc GhcPs)
514 deriving instance Data (AmbiguousFieldOcc GhcRn)
515 deriving instance Data (AmbiguousFieldOcc GhcTc)
516
517
518 -- deriving instance (DataId name) => Data (ImportDecl name)
519 deriving instance Data (ImportDecl GhcPs)
520 deriving instance Data (ImportDecl GhcRn)
521 deriving instance Data (ImportDecl GhcTc)
522
523 -- deriving instance (DataId name) => Data (IE name)
524 deriving instance Data (IE GhcPs)
525 deriving instance Data (IE GhcRn)
526 deriving instance Data (IE GhcTc)
527
528 -- deriving instance (Eq name, Eq (IdP name)) => Eq (IE name)
529 deriving instance Eq (IE GhcPs)
530 deriving instance Eq (IE GhcRn)
531 deriving instance Eq (IE GhcTc)
532
533 -- ---------------------------------------------------------------------
534
535 deriving instance Data XXExprGhcTc
536 deriving instance Data XXPatGhcTc
537
538 -- ---------------------------------------------------------------------
539
540 deriving instance Data XViaStrategyPs
541
542 -- ---------------------------------------------------------------------