GhcApiAstTraversals: Instances.hs

File Instances.hs, 5.6 KB (added by claus, 6 years ago)

derived instances Data/Typeable?, part2

Line 
1{-# LANGUAGE ScopedTypeVariables #-}
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
25import Instances0
26
27#include "Typeable.h"
28
29-- Typeable0
30
31deriving instance Typeable Prag
32deriving instance Data Prag
33
34deriving instance Typeable HsWrapper
35deriving instance Data HsWrapper
36
37deriving instance Typeable PredType
38deriving instance Data PredType
39
40deriving instance Typeable Type
41deriving instance Data Type
42
43deriving instance Typeable HsLit
44deriving instance Data HsLit
45
46-- Typeable1
47
48deriving instance Typeable1 Located
49deriving instance Data e => Data (Located e)
50
51deriving instance Typeable1 HsModule
52deriving instance Data a => Data (HsModule a)
53
54deriving instance Typeable1 HsDoc
55deriving instance Data a => Data (HsDoc a)
56
57deriving instance Typeable1 HaddockModInfo
58deriving instance Data a => Data (HaddockModInfo a)
59
60deriving instance Typeable1 HsDecl
61deriving instance Data a => Data (HsDecl a)
62
63deriving instance Typeable1 ImportDecl
64deriving instance Data a => Data (ImportDecl a)
65
66deriving instance Typeable1 IE
67deriving instance Data a => Data (IE a)
68
69deriving instance Typeable1 TyClDecl
70deriving instance Data a => Data (TyClDecl a)
71
72deriving instance Typeable1 DocDecl
73deriving instance Data a => Data (DocDecl a)
74
75deriving instance Typeable1 SpliceDecl
76deriving instance Data a => Data (SpliceDecl a)
77
78deriving instance Typeable1 RuleDecl
79deriving instance Data a => Data (RuleDecl a)
80
81deriving instance Typeable1 DeprecDecl
82deriving instance Data a => Data (DeprecDecl a)
83
84deriving instance Typeable1 ForeignDecl
85deriving instance Data a => Data (ForeignDecl a)
86
87deriving instance Typeable1 DefaultDecl
88deriving instance Data a => Data (DefaultDecl a)
89
90deriving instance Typeable1 Sig
91deriving instance Data a => Data (Sig a)
92
93deriving instance Typeable1 DerivDecl
94deriving instance Data a => Data (DerivDecl a)
95
96deriving instance Typeable1 InstDecl
97deriving instance Data a => Data (InstDecl a)
98
99deriving instance Typeable1 HsPred
100deriving instance Data a => Data (HsPred a)
101
102deriving instance Typeable1 HsType
103deriving instance Data a => Data (HsType a)
104
105deriving instance Typeable1 ConDecl
106deriving instance Data a => Data (ConDecl a)
107
108INSTANCE_TYPEABLE1(Bag,bagTc,"Bag")
109instance Data a => Data (Bag a) where
110  gfoldl k z b = z listToBag `k` bagToList b -- traverse abstract type abstractly
111  toConstr _   = abstractConstr $ "Bag("++show (typeOf (undefined::a))++")"
112  gunfold _ _  = error "gunfold"
113  dataTypeOf _ = mkNorepType "Bag"
114
115deriving instance Typeable1 HsTyVarBndr
116deriving instance Data a => Data (HsTyVarBndr a)
117
118deriving instance Typeable1 ResType
119deriving instance Data a => Data (ResType a)
120
121deriving instance Typeable1 HsSplice
122deriving instance Data a => Data (HsSplice a)
123
124deriving instance Typeable1 ConDeclField
125deriving instance Data a => Data (ConDeclField a)
126
127deriving instance Typeable1 IPName
128deriving instance Data a => Data (IPName a)
129
130deriving instance Typeable1 MatchGroup
131deriving instance Data a => Data (MatchGroup a)
132
133deriving instance Typeable1 Pat
134deriving instance Data a => Data (Pat a)
135
136deriving instance Typeable1 GRHSs
137deriving instance Data a => Data (GRHSs a)
138
139deriving instance Typeable1 HsExpr
140deriving instance Data a => Data (HsExpr a)
141
142deriving instance Typeable1 HsQuasiQuote
143deriving instance Data a => Data (HsQuasiQuote a)
144
145deriving instance Typeable1 HsOverLit
146deriving instance Data a => Data (HsOverLit a)
147
148deriving instance Typeable1 ArithSeqInfo
149deriving instance Data a => Data (ArithSeqInfo a)
150
151deriving instance Typeable1 HsBracket
152deriving instance Data a => Data (HsBracket a)
153
154deriving instance Typeable1 HsCmdTop
155deriving instance Data a => Data (HsCmdTop a)
156
157deriving instance Typeable1 HsGroup
158deriving instance Data a => Data (HsGroup a)
159
160deriving instance Typeable1 FixitySig
161deriving instance Data a => Data (FixitySig a)
162
163deriving instance Typeable1 HsIPBinds
164deriving instance Data a => Data (HsIPBinds a)
165
166deriving instance Typeable1 IPBind
167deriving instance Data a => Data (IPBind a)
168
169deriving instance Typeable1 GroupByClause
170deriving instance Data a => Data (GroupByClause a)
171
172deriving instance Typeable1 HsStmtContext
173deriving instance Data a => Data (HsStmtContext a)
174
175deriving instance Typeable1 HsMatchContext
176deriving instance Data a => Data (HsMatchContext a)
177
178deriving instance Typeable1 GRHS
179deriving instance Data a => Data (GRHS a)
180
181deriving instance Typeable1 Match
182deriving instance Data a => Data (Match a)
183
184deriving instance Typeable1 RuleBndr
185deriving instance Data a => Data (RuleBndr a)
186
187-- Typeable2
188
189deriving instance Typeable2 HsBindLR
190deriving instance (Data a,Data b) => Data (HsBindLR a b)
191
192deriving instance Typeable2 StmtLR
193deriving instance (Data a,Data b) => Data (StmtLR a b)
194
195deriving instance Typeable2 HsLocalBindsLR
196deriving instance (Data a,Data b) => Data (HsLocalBindsLR a b)
197
198deriving instance Typeable2 HsValBindsLR
199deriving instance (Data a,Data b) => Data (HsValBindsLR a b)
200
201deriving instance Typeable2 HsConDetails
202deriving instance (Data a,Data b) => Data (HsConDetails a b)
203
204deriving instance Typeable2 HsRecFields
205deriving instance (Data a,Data b) => Data (HsRecFields a b)
206
207deriving instance Typeable2 HsRecField
208deriving instance (Data a,Data b) => Data (HsRecField a b)
209
210