@@ -30,29 +30,29 @@ data X = X X
3030 deriving Generic
3131
3232data Unit = Unit
33- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
33+ deriving (Eq , Ord , Read , Show , Data , Generic )
3434
3535data Un = Un { un :: Bool }
36- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
36+ deriving (Eq , Ord , Read , Show , Data , Generic )
3737
3838data D2 = D2 Bool N
39- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
39+ deriving (Eq , Ord , Read , Show , Data , Generic )
4040
4141data D4 = D4 Bool N Unit N3
42- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
42+ deriving (Eq , Ord , Read , Show , Data , Generic )
4343
4444-- Enumeration
4545data N3 = N1
4646 | N2
4747 | N3
48- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic , Enum )
48+ deriving (Eq , Ord , Read , Show , Data , Generic , Enum )
4949
5050data N = One
5151 | Two
5252 | Three
5353 | Four
5454 | Five
55- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic , Enum , Bounded )
55+ deriving (Eq , Ord , Read , Show , Data , Generic , Enum , Bounded )
5656
5757-- toForestD :: Forest a -> ForestD (Tr2 a)
5858-- toForestD (Forest lt) = undefined -- Forest2 (ForestD (map (\t -> let Tr2 tt = treeConv t in tt) . toList $ lt))
@@ -68,30 +68,30 @@ toTr2 (Tr a (Forest f)) = Tr2 (TrD a (ForestD $ fmap toTr2 f))
6868
6969-- tying the recursive knot, equivalent to Forest/Tree
7070data Forest2 a = Forest2 (ForestD (TrD (Forest2 a ) a ))
71- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
71+ deriving (Eq , Ord , Read , Show , Data , Generic )
7272
7373data Tr2 a = Tr2 (TrD (ForestD (Tr2 a )) a )
74- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
74+ deriving (Eq , Ord , Read , Show , Data , Generic )
7575
7676-- First-order non mutually recursive
7777data ForestD t = ForestD (List t )
78- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
78+ deriving (Eq , Ord , Read , Show , Data , Generic )
7979
8080data TrD f a = TrD a f
81- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
81+ deriving (Eq , Ord , Read , Show , Data , Generic )
8282
8383-- Explicit mutually recursive
8484data Forest a = Forest (List (Tr a ))
85- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
85+ deriving (Eq , Ord , Read , Show , Data , Generic )
8686
8787data Tr a = Tr a (Forest a )
88- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
88+ deriving (Eq , Ord , Read , Show , Data , Generic )
8989
9090data Words = Words Word8 Word16 Word32 Word64
91- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
91+ deriving (Eq , Ord , Read , Show , Data , Generic )
9292
9393data Ints = Ints Int8 Int16 Int32 Int64
94- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
94+ deriving (Eq , Ord , Read , Show , Data , Generic )
9595
9696-- non-recursive data type
9797data Various = V1 (Maybe Bool )
@@ -101,108 +101,108 @@ data Various = V1 (Maybe Bool)
101101 | VW Word Word8 Word16 Word32 Word64
102102 | VI Int Int8 Int16 Int32 Int64
103103 | VII Integer Integer Integer
104- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
104+ deriving (Eq , Ord , Read , Show , Data , Generic )
105105
106106-- Phantom type
107107data Phantom a = Phantom
108- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
108+ deriving (Eq , Ord , Read , Show , Data , Generic )
109109
110110-- Recursive data types
111111data RR a b c = RN { rna :: a , rnb :: b , rnc :: c }
112112 | RA a (RR a a c ) b
113113 | RAB a (RR c b a ) b
114- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
114+ deriving (Eq , Ord , Read , Show , Data , Generic )
115115
116116data Expr = ValB Bool
117117 | Or Expr Expr
118118 | If Expr Expr Expr
119- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
119+ deriving (Eq , Ord , Read , Show , Data , Generic )
120120
121121data List a = C a (List a )
122122 | N
123- deriving (Eq , Ord , Read , Show , Typeable , Traversable , Data , Generic , Generic1
123+ deriving (Eq , Ord , Read , Show , Traversable , Data , Generic , Generic1
124124 , Functor , Foldable )
125125
126126data ListS a = Nil
127127 | Cons a (ListS a )
128- deriving (Eq , Ord , Read , Show , Typeable , Functor , Foldable , Traversable , Data
128+ deriving (Eq , Ord , Read , Show , Functor , Foldable , Traversable , Data
129129 , Generic , Generic1 )
130130
131131-- non-regular Haskell datatypes like:
132132-- Binary instances but no Model
133133data Nest a = NilN
134134 | ConsN (a , Nest (a , a ))
135- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
135+ deriving (Eq , Ord , Read , Show , Data , Generic )
136136
137137data TN a = LeafT a
138138 | BranchT (TN (a , a ))
139- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
139+ deriving (Eq , Ord , Read , Show , Data , Generic )
140140
141141data Bush a = NilB
142142 | ConsB (a , Bush (Bush a ))
143- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
143+ deriving (Eq , Ord , Read , Show , Data , Generic )
144144
145145-- Perfectly balanced binary tree
146146data Perfect a = ZeroP a
147147 | SuccP (Perfect (Fork a ))
148- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
148+ deriving (Eq , Ord , Read , Show , Data , Generic )
149149
150150data Fork a = Fork a a
151- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
151+ deriving (Eq , Ord , Read , Show , Data , Generic )
152152
153153-- non regular with higher-order kind parameters
154154-- no Binary/Model instances
155155data PerfectF f α = NilP
156156 | ConsP α (PerfectF f (f α ))
157- deriving (Typeable , Generic ) -- No Data
157+ deriving (Generic ) -- No Data
158158
159159data Pr f g a = Pr (f a (g a ))
160160
161161data Higher f a = Higher (f a )
162- deriving (Typeable , Generic , Data )
162+ deriving (Generic , Data )
163163
164164-- data Pr2 (f :: * -> *) a = Pr2 (f )
165165data Free f a = Pure a
166166 | Roll (f (Free f a ))
167- deriving (Typeable , Generic )
167+ deriving (Generic )
168168
169169-- mutual references
170170data A = A B
171171 | AA Int
172- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
172+ deriving (Eq , Ord , Read , Show , Data , Generic )
173173
174174data B = B A
175175 | BB Char
176- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
176+ deriving (Eq , Ord , Read , Show , Data , Generic )
177177
178178-- recursive sets:
179179-- Prob: ghc will just explode on this
180- -- data MM1 = MM1 MM2 MM4 MM0 deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)
181- -- data MM0 = MM0 deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)
182- -- data MM2 = MM2 MM3 Bool deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)
183- -- data MM3 = MM3 MM4 Bool deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)
184- -- data MM4 = MM4 MM4 MM2 MM5 deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)
185- -- data MM5 = MM5 Unit MM6 deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)
186- -- data MM6 = MM6 MM5 deriving (Eq, Ord, Read, Show, Typeable, Data, Generic)
180+ -- data MM1 = MM1 MM2 MM4 MM0 deriving (Eq, Ord, Read, Show, Data, Generic)
181+ -- data MM0 = MM0 deriving (Eq, Ord, Read, Show, Data, Generic)
182+ -- data MM2 = MM2 MM3 Bool deriving (Eq, Ord, Read, Show, Data, Generic)
183+ -- data MM3 = MM3 MM4 Bool deriving (Eq, Ord, Read, Show, Data, Generic)
184+ -- data MM4 = MM4 MM4 MM2 MM5 deriving (Eq, Ord, Read, Show, Data, Generic)
185+ -- data MM5 = MM5 Unit MM6 deriving (Eq, Ord, Read, Show, Data, Generic)
186+ -- data MM6 = MM6 MM5 deriving (Eq, Ord, Read, Show, Data, Generic)
187187data A0 = A0 B0 B0 D0 Bool
188188 | A1 (List Bool ) (List Unit ) (D2. List Bool ) (D2. List Bool )
189- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
189+ deriving (Eq , Ord , Read , Show , Data , Generic )
190190
191191data B0 = B0 C0
192192 | B1
193- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
193+ deriving (Eq , Ord , Read , Show , Data , Generic )
194194
195195data C0 = C0 A0
196196 | C1
197- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
197+ deriving (Eq , Ord , Read , Show , Data , Generic )
198198
199199data D0 = D0 E0
200200 | D1
201- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
201+ deriving (Eq , Ord , Read , Show , Data , Generic )
202202
203203data E0 = E0 D0
204204 | E1
205- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
205+ deriving (Eq , Ord , Read , Show , Data , Generic )
206206
207207data Even = Zero
208208 | SuccE Odd
@@ -220,15 +220,15 @@ data Direction = North
220220 | Center
221221 | East
222222 | West
223- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
223+ deriving (Eq , Ord , Read , Show , Data , Generic )
224224
225225data Stream a = Stream a (Stream a )
226- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic , Functor , Foldable
226+ deriving (Eq , Ord , Read , Show , Data , Generic , Functor , Foldable
227227 , Traversable )
228228
229229data Tree a = Node (Tree a ) (Tree a )
230230 | Leaf a
231- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic , Foldable )
231+ deriving (Eq , Ord , Read , Show , Data , Generic , Foldable )
232232
233233-- Example schema from: http://mechanical-sympathy.blogspot.co.uk/2014/05/simple-binary-encoding.html
234234data Car =
@@ -245,31 +245,31 @@ data Car =
245245 , make :: String
246246 , carModel :: String
247247 }
248- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
248+ deriving (Eq , Ord , Read , Show , Data , Generic )
249249
250250data Acceleration = Acceleration { mph :: Word16 , seconds :: Float }
251- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
251+ deriving (Eq , Ord , Read , Show , Data , Generic )
252252
253253type OctaneRating = Word8 -- minValue="90" maxValue="110"
254254
255255data Consumption = Consumption { cSpeed :: Word16 , cMpg :: Float }
256- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
256+ deriving (Eq , Ord , Read , Show , Data , Generic )
257257
258258data CarModel = ModelA
259259 | ModelB
260260 | ModelC
261- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
261+ deriving (Eq , Ord , Read , Show , Data , Generic )
262262
263263data OptionalExtra = SunRoof
264264 | SportsPack
265265 | CruiseControl
266- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
266+ deriving (Eq , Ord , Read , Show , Data , Generic )
267267
268268data Engine = Engine { capacity :: Word16
269269 , numCylinders :: Word8
270270 , maxRpm :: Word16 -- constant 9000
271271 , manufacturerCode :: String
272272 , fuel :: String -- constant Petrol
273273 }
274- deriving (Eq , Ord , Read , Show , Typeable , Data , Generic )
274+ deriving (Eq , Ord , Read , Show , Data , Generic )
275275
0 commit comments