Ticket #2438: All.hs

File All.hs, 9.5 KB (added by claus, 6 years ago)

merged source

Line 
1
2{-# LANGUAGE CPP #-}
3{-# LANGUAGE TypeSynonymInstances #-}
4{-# LANGUAGE StandaloneDeriving #-}
5{-# LANGUAGE DeriveDataTypeable #-}
6
7module Instances where
8
9import GHC hiding(TyCon)
10import SrcLoc
11import RdrName
12import OccName
13import FastString
14import Bag
15import Module
16import BasicTypes
17import Var
18import ForeignCall
19
20import Data.Generics
21import NameSet
22import TypeRep
23import qualified TyCon
24
25
26#include "Typeable.h"
27
28-- Typeable0
29
30deriving instance Typeable Prag
31deriving instance Data Prag
32
33deriving instance Typeable HsWrapper
34deriving instance Data HsWrapper
35
36deriving instance Typeable PredType
37deriving instance Data PredType
38
39deriving instance Typeable Type
40deriving instance Data Type
41
42deriving instance Typeable HsLit
43deriving instance Data HsLit
44
45-- Typeable1
46
47deriving instance Typeable1 Located
48deriving instance Data e => Data (Located e)
49
50deriving instance Typeable1 HsModule
51deriving instance Data a => Data (HsModule a)
52
53deriving instance Typeable1 HsDoc
54deriving instance Data a => Data (HsDoc a)
55
56deriving instance Typeable1 HaddockModInfo
57deriving instance Data a => Data (HaddockModInfo a)
58
59deriving instance Typeable1 HsDecl
60deriving instance Data a => Data (HsDecl a)
61
62deriving instance Typeable1 ImportDecl
63deriving instance Data a => Data (ImportDecl a)
64
65deriving instance Typeable1 IE
66deriving instance Data a => Data (IE a)
67
68deriving instance Typeable1 TyClDecl
69deriving instance Data a => Data (TyClDecl a)
70
71deriving instance Typeable1 DocDecl
72deriving instance Data a => Data (DocDecl a)
73
74deriving instance Typeable1 SpliceDecl
75deriving instance Data a => Data (SpliceDecl a)
76
77deriving instance Typeable1 RuleDecl
78deriving instance Data a => Data (RuleDecl a)
79
80deriving instance Typeable1 DeprecDecl
81deriving instance Data a => Data (DeprecDecl a)
82
83deriving instance Typeable1 ForeignDecl
84deriving instance Data a => Data (ForeignDecl a)
85
86deriving instance Typeable1 DefaultDecl
87deriving instance Data a => Data (DefaultDecl a)
88
89deriving instance Typeable1 Sig
90deriving instance Data a => Data (Sig a)
91
92deriving instance Typeable1 DerivDecl
93deriving instance Data a => Data (DerivDecl a)
94
95deriving instance Typeable1 InstDecl
96deriving instance Data a => Data (InstDecl a)
97
98deriving instance Typeable1 HsPred
99deriving instance Data a => Data (HsPred a)
100
101deriving instance Typeable1 HsType
102deriving instance Data a => Data (HsType a)
103
104deriving instance Typeable1 ConDecl
105deriving instance Data a => Data (ConDecl a)
106
107INSTANCE_TYPEABLE1(Bag,bagTc,"Bag")
108instance Data a => Data (Bag a) where
109  toConstr _   = abstractConstr "Bag"
110  gunfold _ _  = error "gunfold"
111  dataTypeOf _ = mkNorepType "Bag"
112
113deriving instance Typeable1 HsTyVarBndr
114deriving instance Data a => Data (HsTyVarBndr a)
115
116deriving instance Typeable1 ResType
117deriving instance Data a => Data (ResType a)
118
119deriving instance Typeable1 HsSplice
120deriving instance Data a => Data (HsSplice a)
121
122deriving instance Typeable1 ConDeclField
123deriving instance Data a => Data (ConDeclField a)
124
125deriving instance Typeable1 IPName
126deriving instance Data a => Data (IPName a)
127
128deriving instance Typeable1 MatchGroup
129deriving instance Data a => Data (MatchGroup a)
130
131deriving instance Typeable1 Pat
132deriving instance Data a => Data (Pat a)
133
134deriving instance Typeable1 GRHSs
135deriving instance Data a => Data (GRHSs a)
136
137deriving instance Typeable1 HsExpr
138deriving instance Data a => Data (HsExpr a)
139
140deriving instance Typeable1 HsQuasiQuote
141deriving instance Data a => Data (HsQuasiQuote a)
142
143deriving instance Typeable1 HsOverLit
144deriving instance Data a => Data (HsOverLit a)
145
146deriving instance Typeable1 ArithSeqInfo
147deriving instance Data a => Data (ArithSeqInfo a)
148
149deriving instance Typeable1 HsBracket
150deriving instance Data a => Data (HsBracket a)
151
152deriving instance Typeable1 HsCmdTop
153deriving instance Data a => Data (HsCmdTop a)
154
155deriving instance Typeable1 HsGroup
156deriving instance Data a => Data (HsGroup a)
157
158deriving instance Typeable1 FixitySig
159deriving instance Data a => Data (FixitySig a)
160
161deriving instance Typeable1 HsIPBinds
162deriving instance Data a => Data (HsIPBinds a)
163
164deriving instance Typeable1 IPBind
165deriving instance Data a => Data (IPBind a)
166
167deriving instance Typeable1 GroupByClause
168deriving instance Data a => Data (GroupByClause a)
169
170deriving instance Typeable1 HsStmtContext
171deriving instance Data a => Data (HsStmtContext a)
172
173deriving instance Typeable1 HsMatchContext
174deriving instance Data a => Data (HsMatchContext a)
175
176deriving instance Typeable1 GRHS
177deriving instance Data a => Data (GRHS a)
178
179deriving instance Typeable1 Match
180deriving instance Data a => Data (Match a)
181
182deriving instance Typeable1 RuleBndr
183deriving instance Data a => Data (RuleBndr a)
184
185-- Typeable2
186
187deriving instance Typeable2 HsBindLR
188deriving instance (Data a,Data b) => Data (HsBindLR a b)
189
190deriving instance Typeable2 StmtLR
191deriving instance (Data a,Data b) => Data (StmtLR a b)
192
193deriving instance Typeable2 HsLocalBindsLR
194deriving instance (Data a,Data b) => Data (HsLocalBindsLR a b)
195
196deriving instance Typeable2 HsValBindsLR
197deriving instance (Data a,Data b) => Data (HsValBindsLR a b)
198
199deriving instance Typeable2 HsConDetails
200deriving instance (Data a,Data b) => Data (HsConDetails a b)
201
202deriving instance Typeable2 HsRecFields
203deriving instance (Data a,Data b) => Data (HsRecFields a b)
204
205deriving instance Typeable2 HsRecField
206deriving instance (Data a,Data b) => Data (HsRecField a b)
207
208
209abstractConstr   n = mkConstr (abstractDataType n) ("{abstract:"++n++"}") [] Prefix
210abstractDataType n = mkDataType n [abstractConstr n]
211
212-- Typeable
213
214INSTANCE_TYPEABLE0(SrcSpan,srcSpanTc,"SrcSpan")
215instance Data SrcSpan where
216  toConstr _   = abstractConstr "SrcSpan"
217  gunfold _ _  = error "gunfold"
218  dataTypeOf _ = mkNorepType "SrcSpan"
219
220INSTANCE_TYPEABLE0(Module,moduleTc,"Module")
221instance Data Module where
222  toConstr _   = abstractConstr "Module"
223  gunfold _ _  = error "gunfold"
224  dataTypeOf _ = mkNorepType "Module"
225
226INSTANCE_TYPEABLE0(ModuleName,moduleNameTc,"ModuleName")
227instance Data ModuleName where
228  toConstr _   = abstractConstr "ModuleName"
229  gunfold _ _  = error "gunfold"
230  dataTypeOf _ = mkNorepType "ModuleName"
231
232deriving instance Typeable RdrName
233deriving instance Data RdrName
234
235INSTANCE_TYPEABLE0(OccName,occNameTc,"OccName")
236instance Data OccName where
237  toConstr _   = abstractConstr "OccName"
238  gunfold _ _  = error "gunfold"
239  dataTypeOf _ = mkNorepType "OccName"
240
241INSTANCE_TYPEABLE0(Name,nameTc,"Name")
242instance Data Name where
243  toConstr _   = abstractConstr "Name"
244  gunfold _ _  = error "gunfold"
245  dataTypeOf _ = mkNorepType "Name"
246
247deriving instance Typeable FastString
248instance Data FastString where
249  toConstr _   = abstractConstr "FastString"
250  gunfold _ _  = error "gunfold"
251  dataTypeOf _ = mkNorepType "FastString"
252
253deriving instance Typeable HsExplicitForAll
254deriving instance Data HsExplicitForAll
255
256deriving instance Typeable HsBang
257deriving instance Data HsBang
258
259deriving instance Typeable Boxity
260deriving instance Data Boxity
261
262deriving instance Typeable OverLitVal
263deriving instance Data OverLitVal
264
265deriving instance Typeable RecFlag
266deriving instance Data RecFlag
267
268deriving instance Typeable BasicTypes.Fixity
269deriving instance Data BasicTypes.Fixity
270
271deriving instance Typeable HsArrAppType
272deriving instance Data HsArrAppType
273
274deriving instance Typeable FixityDirection
275deriving instance Data FixityDirection
276
277INSTANCE_TYPEABLE0(DataCon,dataConTc,"DataCon")
278instance Data DataCon where
279  toConstr _   = abstractConstr "DataCon"
280  gunfold _ _  = error "gunfold"
281  dataTypeOf _ = mkNorepType "DataCon"
282
283INSTANCE_TYPEABLE0(Var,varTc,"Var")
284instance Data Var where
285  toConstr _   = abstractConstr "Var"
286  gunfold _ _  = error "gunfold"
287  dataTypeOf _ = mkNorepType "Var"
288
289deriving instance Typeable InlineSpec
290deriving instance Data InlineSpec
291
292deriving instance Typeable ForeignImport
293deriving instance Data ForeignImport
294
295deriving instance Typeable ForeignExport
296deriving instance Data ForeignExport
297
298deriving instance Typeable CImportSpec
299deriving instance Data CImportSpec
300
301deriving instance Typeable CExportSpec
302deriving instance Data CExportSpec
303
304deriving instance Typeable DNCallSpec
305deriving instance Data DNCallSpec
306
307deriving instance Typeable Safety
308deriving instance Data Safety
309
310deriving instance Typeable CCallConv
311deriving instance Data CCallConv
312
313deriving instance Typeable DNKind
314deriving instance Data DNKind
315
316deriving instance Typeable DNType
317deriving instance Data DNType
318
319deriving instance Typeable CCallTarget
320deriving instance Data CCallTarget
321
322deriving instance Typeable Activation
323deriving instance Data Activation
324
325INSTANCE_TYPEABLE0(NameSet,nameSetTc,"NameSet")
326instance Data NameSet where
327  toConstr _   = abstractConstr "NameSet"
328  gunfold _ _  = error "gunfold"
329  dataTypeOf _ = mkNorepType "NameSet"
330
331deriving instance Typeable FoType
332deriving instance Data FoType
333
334deriving instance Typeable FamilyFlavour
335deriving instance Data FamilyFlavour
336
337deriving instance Typeable NewOrData
338deriving instance Data NewOrData
339
340INSTANCE_TYPEABLE0(TyCon.TyCon,tyConTc,"TyCon")
341instance Data TyCon.TyCon where
342  toConstr _   = abstractConstr "TyCon.TyCon"
343  gunfold _ _  = error "gunfold"
344  dataTypeOf _ = mkNorepType "TyCon.TyCon"
345
346INSTANCE_TYPEABLE0(Class,classTc,"Class")
347instance Data Class where
348  toConstr _   = abstractConstr "Class"
349  gunfold _ _  = error "gunfold"
350  dataTypeOf _ = mkNorepType "Class"
351
352