Ticket #10980: M_200_manual.hs

File M_200_manual.hs, 18.5 KB (added by slyfox, 4 years ago)

factored out repetition

Line 
1module M (D) where
2
3import Text.Read
4import GHC.Read
5
6data D = D { a0, a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9 , a10 , a11 , a12 , a13 , a14 , a15 , a16 , a17 , a18 , a19
7           , a20 , a21 , a22 , a23 , a24 , a25 , a26 , a27 , a28 , a29 , a30 , a31 , a32 , a33 , a34 , a35 , a36 , a37 , a38 , a39
8           , a40 , a41 , a42 , a43 , a44 , a45 , a46 , a47 , a48 , a49 , a50 , a51 , a52 , a53 , a54 , a55 , a56 , a57 , a58 , a59
9           , a60 , a61 , a62 , a63 , a64 , a65 , a66 , a67 , a68 , a69 , a70 , a71 , a72 , a73 , a74 , a75 , a76 , a77 , a78 , a79
10           , a80 , a81 , a82 , a83 , a84 , a85 , a86 , a87 , a88 , a89 , a90 , a91 , a92 , a93 , a94 , a95 , a96 , a97 , a98 , a99
11           , a100 , a101 , a102 , a103 , a104 , a105 , a106 , a107 , a108 , a109 , a110 , a111 , a112 , a113 , a114 , a115 , a116 , a117 , a118 , a119
12           , a120 , a121 , a122 , a123 , a124 , a125 , a126 , a127 , a128 , a129 , a130 , a131 , a132 , a133 , a134 , a135 , a136 , a137 , a138 , a139
13           , a140 , a141 , a142 , a143 , a144 , a145 , a146 , a147 , a148 , a149 , a150 , a151 , a152 , a153 , a154 , a155 , a156 , a157 , a158 , a159
14           , a160 , a161 , a162 , a163 , a164 , a165 , a166 , a167 , a168 , a169 , a170 , a171 , a172 , a173 , a174 , a175 , a176 , a177 , a178 , a179
15           , a180 , a181 , a182 , a183 , a184 , a185 , a186 , a187 , a188 , a189 , a190 , a191 , a192 , a193 , a194 , a195 , a196 , a197 , a198 , a199
16           , a200
17           :: Int
18           }
19
20comma_field_eq_read field = do
21    expectP (Punc ",")
22    expectP (Ident field)
23    expectP (Punc "=")
24    reset readPrec
25
26-- exactly what 'deriving instance Read D' generates
27-- cleaned by:
28--    perl -pe 'BEGIN { undef $/ } s/                   expectP \(Punc ","\);\n                   expectP \(Ident "a(\d+)"\);\n                   expectP \(Punc "="\);\n                   a(\d+) <- reset readPrec;\n/                   a\2 <- comma_field_eq_read "a\1";\n/mg'
29instance Read D where
30    readPrec
31      = parens
32          (prec
33             11
34             (do { expectP (Ident "D");
35                   expectP (Punc "{");
36                   expectP (Ident "a0");
37                   expectP (Punc "=");
38                   a1 <- reset readPrec;
39                   a2 <- comma_field_eq_read "a1";
40                   a3 <- comma_field_eq_read "a2";
41                   a4 <- comma_field_eq_read "a3";
42                   a5 <- comma_field_eq_read "a4";
43                   a6 <- comma_field_eq_read "a5";
44                   a7 <- comma_field_eq_read "a6";
45                   a8 <- comma_field_eq_read "a7";
46                   a9 <- comma_field_eq_read "a8";
47                   a10 <- comma_field_eq_read "a9";
48                   a11 <- comma_field_eq_read "a10";
49                   a12 <- comma_field_eq_read "a11";
50                   a13 <- comma_field_eq_read "a12";
51                   a14 <- comma_field_eq_read "a13";
52                   a15 <- comma_field_eq_read "a14";
53                   a16 <- comma_field_eq_read "a15";
54                   a17 <- comma_field_eq_read "a16";
55                   a18 <- comma_field_eq_read "a17";
56                   a19 <- comma_field_eq_read "a18";
57                   a20 <- comma_field_eq_read "a19";
58                   a21 <- comma_field_eq_read "a20";
59                   a22 <- comma_field_eq_read "a21";
60                   a23 <- comma_field_eq_read "a22";
61                   a24 <- comma_field_eq_read "a23";
62                   a25 <- comma_field_eq_read "a24";
63                   a26 <- comma_field_eq_read "a25";
64                   a27 <- comma_field_eq_read "a26";
65                   a28 <- comma_field_eq_read "a27";
66                   a29 <- comma_field_eq_read "a28";
67                   a30 <- comma_field_eq_read "a29";
68                   a31 <- comma_field_eq_read "a30";
69                   a32 <- comma_field_eq_read "a31";
70                   a33 <- comma_field_eq_read "a32";
71                   a34 <- comma_field_eq_read "a33";
72                   a35 <- comma_field_eq_read "a34";
73                   a36 <- comma_field_eq_read "a35";
74                   a37 <- comma_field_eq_read "a36";
75                   a38 <- comma_field_eq_read "a37";
76                   a39 <- comma_field_eq_read "a38";
77                   a40 <- comma_field_eq_read "a39";
78                   a41 <- comma_field_eq_read "a40";
79                   a42 <- comma_field_eq_read "a41";
80                   a43 <- comma_field_eq_read "a42";
81                   a44 <- comma_field_eq_read "a43";
82                   a45 <- comma_field_eq_read "a44";
83                   a46 <- comma_field_eq_read "a45";
84                   a47 <- comma_field_eq_read "a46";
85                   a48 <- comma_field_eq_read "a47";
86                   a49 <- comma_field_eq_read "a48";
87                   a50 <- comma_field_eq_read "a49";
88                   a51 <- comma_field_eq_read "a50";
89                   a52 <- comma_field_eq_read "a51";
90                   a53 <- comma_field_eq_read "a52";
91                   a54 <- comma_field_eq_read "a53";
92                   a55 <- comma_field_eq_read "a54";
93                   a56 <- comma_field_eq_read "a55";
94                   a57 <- comma_field_eq_read "a56";
95                   a58 <- comma_field_eq_read "a57";
96                   a59 <- comma_field_eq_read "a58";
97                   a60 <- comma_field_eq_read "a59";
98                   a61 <- comma_field_eq_read "a60";
99                   a62 <- comma_field_eq_read "a61";
100                   a63 <- comma_field_eq_read "a62";
101                   a64 <- comma_field_eq_read "a63";
102                   a65 <- comma_field_eq_read "a64";
103                   a66 <- comma_field_eq_read "a65";
104                   a67 <- comma_field_eq_read "a66";
105                   a68 <- comma_field_eq_read "a67";
106                   a69 <- comma_field_eq_read "a68";
107                   a70 <- comma_field_eq_read "a69";
108                   a71 <- comma_field_eq_read "a70";
109                   a72 <- comma_field_eq_read "a71";
110                   a73 <- comma_field_eq_read "a72";
111                   a74 <- comma_field_eq_read "a73";
112                   a75 <- comma_field_eq_read "a74";
113                   a76 <- comma_field_eq_read "a75";
114                   a77 <- comma_field_eq_read "a76";
115                   a78 <- comma_field_eq_read "a77";
116                   a79 <- comma_field_eq_read "a78";
117                   a80 <- comma_field_eq_read "a79";
118                   a81 <- comma_field_eq_read "a80";
119                   a82 <- comma_field_eq_read "a81";
120                   a83 <- comma_field_eq_read "a82";
121                   a84 <- comma_field_eq_read "a83";
122                   a85 <- comma_field_eq_read "a84";
123                   a86 <- comma_field_eq_read "a85";
124                   a87 <- comma_field_eq_read "a86";
125                   a88 <- comma_field_eq_read "a87";
126                   a89 <- comma_field_eq_read "a88";
127                   a90 <- comma_field_eq_read "a89";
128                   a91 <- comma_field_eq_read "a90";
129                   a92 <- comma_field_eq_read "a91";
130                   a93 <- comma_field_eq_read "a92";
131                   a94 <- comma_field_eq_read "a93";
132                   a95 <- comma_field_eq_read "a94";
133                   a96 <- comma_field_eq_read "a95";
134                   a97 <- comma_field_eq_read "a96";
135                   a98 <- comma_field_eq_read "a97";
136                   a99 <- comma_field_eq_read "a98";
137                   a100 <- comma_field_eq_read "a99";
138                   a101 <- comma_field_eq_read "a100";
139                   a102 <- comma_field_eq_read "a101";
140                   a103 <- comma_field_eq_read "a102";
141                   a104 <- comma_field_eq_read "a103";
142                   a105 <- comma_field_eq_read "a104";
143                   a106 <- comma_field_eq_read "a105";
144                   a107 <- comma_field_eq_read "a106";
145                   a108 <- comma_field_eq_read "a107";
146                   a109 <- comma_field_eq_read "a108";
147                   a110 <- comma_field_eq_read "a109";
148                   a111 <- comma_field_eq_read "a110";
149                   a112 <- comma_field_eq_read "a111";
150                   a113 <- comma_field_eq_read "a112";
151                   a114 <- comma_field_eq_read "a113";
152                   a115 <- comma_field_eq_read "a114";
153                   a116 <- comma_field_eq_read "a115";
154                   a117 <- comma_field_eq_read "a116";
155                   a118 <- comma_field_eq_read "a117";
156                   a119 <- comma_field_eq_read "a118";
157                   a120 <- comma_field_eq_read "a119";
158                   a121 <- comma_field_eq_read "a120";
159                   a122 <- comma_field_eq_read "a121";
160                   a123 <- comma_field_eq_read "a122";
161                   a124 <- comma_field_eq_read "a123";
162                   a125 <- comma_field_eq_read "a124";
163                   a126 <- comma_field_eq_read "a125";
164                   a127 <- comma_field_eq_read "a126";
165                   a128 <- comma_field_eq_read "a127";
166                   a129 <- comma_field_eq_read "a128";
167                   a130 <- comma_field_eq_read "a129";
168                   a131 <- comma_field_eq_read "a130";
169                   a132 <- comma_field_eq_read "a131";
170                   a133 <- comma_field_eq_read "a132";
171                   a134 <- comma_field_eq_read "a133";
172                   a135 <- comma_field_eq_read "a134";
173                   a136 <- comma_field_eq_read "a135";
174                   a137 <- comma_field_eq_read "a136";
175                   a138 <- comma_field_eq_read "a137";
176                   a139 <- comma_field_eq_read "a138";
177                   a140 <- comma_field_eq_read "a139";
178                   a141 <- comma_field_eq_read "a140";
179                   a142 <- comma_field_eq_read "a141";
180                   a143 <- comma_field_eq_read "a142";
181                   a144 <- comma_field_eq_read "a143";
182                   a145 <- comma_field_eq_read "a144";
183                   a146 <- comma_field_eq_read "a145";
184                   a147 <- comma_field_eq_read "a146";
185                   a148 <- comma_field_eq_read "a147";
186                   a149 <- comma_field_eq_read "a148";
187                   a150 <- comma_field_eq_read "a149";
188                   a151 <- comma_field_eq_read "a150";
189                   a152 <- comma_field_eq_read "a151";
190                   a153 <- comma_field_eq_read "a152";
191                   a154 <- comma_field_eq_read "a153";
192                   a155 <- comma_field_eq_read "a154";
193                   a156 <- comma_field_eq_read "a155";
194                   a157 <- comma_field_eq_read "a156";
195                   a158 <- comma_field_eq_read "a157";
196                   a159 <- comma_field_eq_read "a158";
197                   a160 <- comma_field_eq_read "a159";
198                   a161 <- comma_field_eq_read "a160";
199                   a162 <- comma_field_eq_read "a161";
200                   a163 <- comma_field_eq_read "a162";
201                   a164 <- comma_field_eq_read "a163";
202                   a165 <- comma_field_eq_read "a164";
203                   a166 <- comma_field_eq_read "a165";
204                   a167 <- comma_field_eq_read "a166";
205                   a168 <- comma_field_eq_read "a167";
206                   a169 <- comma_field_eq_read "a168";
207                   a170 <- comma_field_eq_read "a169";
208                   a171 <- comma_field_eq_read "a170";
209                   a172 <- comma_field_eq_read "a171";
210                   a173 <- comma_field_eq_read "a172";
211                   a174 <- comma_field_eq_read "a173";
212                   a175 <- comma_field_eq_read "a174";
213                   a176 <- comma_field_eq_read "a175";
214                   a177 <- comma_field_eq_read "a176";
215                   a178 <- comma_field_eq_read "a177";
216                   a179 <- comma_field_eq_read "a178";
217                   a180 <- comma_field_eq_read "a179";
218                   a181 <- comma_field_eq_read "a180";
219                   a182 <- comma_field_eq_read "a181";
220                   a183 <- comma_field_eq_read "a182";
221                   a184 <- comma_field_eq_read "a183";
222                   a185 <- comma_field_eq_read "a184";
223                   a186 <- comma_field_eq_read "a185";
224                   a187 <- comma_field_eq_read "a186";
225                   a188 <- comma_field_eq_read "a187";
226                   a189 <- comma_field_eq_read "a188";
227                   a190 <- comma_field_eq_read "a189";
228                   a191 <- comma_field_eq_read "a190";
229                   a192 <- comma_field_eq_read "a191";
230                   a193 <- comma_field_eq_read "a192";
231                   a194 <- comma_field_eq_read "a193";
232                   a195 <- comma_field_eq_read "a194";
233                   a196 <- comma_field_eq_read "a195";
234                   a197 <- comma_field_eq_read "a196";
235                   a198 <- comma_field_eq_read "a197";
236                   a199 <- comma_field_eq_read "a198";
237                   a200 <- comma_field_eq_read "a199";
238                   a201 <- comma_field_eq_read "a200";
239                   expectP (Punc "}");
240                   return
241                     (D a1
242                        a2
243                        a3
244                        a4
245                        a5
246                        a6
247                        a7
248                        a8
249                        a9
250                        a10
251                        a11
252                        a12
253                        a13
254                        a14
255                        a15
256                        a16
257                        a17
258                        a18
259                        a19
260                        a20
261                        a21
262                        a22
263                        a23
264                        a24
265                        a25
266                        a26
267                        a27
268                        a28
269                        a29
270                        a30
271                        a31
272                        a32
273                        a33
274                        a34
275                        a35
276                        a36
277                        a37
278                        a38
279                        a39
280                        a40
281                        a41
282                        a42
283                        a43
284                        a44
285                        a45
286                        a46
287                        a47
288                        a48
289                        a49
290                        a50
291                        a51
292                        a52
293                        a53
294                        a54
295                        a55
296                        a56
297                        a57
298                        a58
299                        a59
300                        a60
301                        a61
302                        a62
303                        a63
304                        a64
305                        a65
306                        a66
307                        a67
308                        a68
309                        a69
310                        a70
311                        a71
312                        a72
313                        a73
314                        a74
315                        a75
316                        a76
317                        a77
318                        a78
319                        a79
320                        a80
321                        a81
322                        a82
323                        a83
324                        a84
325                        a85
326                        a86
327                        a87
328                        a88
329                        a89
330                        a90
331                        a91
332                        a92
333                        a93
334                        a94
335                        a95
336                        a96
337                        a97
338                        a98
339                        a99
340                        a100
341                        a101
342                        a102
343                        a103
344                        a104
345                        a105
346                        a106
347                        a107
348                        a108
349                        a109
350                        a110
351                        a111
352                        a112
353                        a113
354                        a114
355                        a115
356                        a116
357                        a117
358                        a118
359                        a119
360                        a120
361                        a121
362                        a122
363                        a123
364                        a124
365                        a125
366                        a126
367                        a127
368                        a128
369                        a129
370                        a130
371                        a131
372                        a132
373                        a133
374                        a134
375                        a135
376                        a136
377                        a137
378                        a138
379                        a139
380                        a140
381                        a141
382                        a142
383                        a143
384                        a144
385                        a145
386                        a146
387                        a147
388                        a148
389                        a149
390                        a150
391                        a151
392                        a152
393                        a153
394                        a154
395                        a155
396                        a156
397                        a157
398                        a158
399                        a159
400                        a160
401                        a161
402                        a162
403                        a163
404                        a164
405                        a165
406                        a166
407                        a167
408                        a168
409                        a169
410                        a170
411                        a171
412                        a172
413                        a173
414                        a174
415                        a175
416                        a176
417                        a177
418                        a178
419                        a179
420                        a180
421                        a181
422                        a182
423                        a183
424                        a184
425                        a185
426                        a186
427                        a187
428                        a188
429                        a189
430                        a190
431                        a191
432                        a192
433                        a193
434                        a194
435                        a195
436                        a196
437                        a197
438                        a198
439                        a199
440                        a200
441                        a201) }))
442    readList = readListDefault
443    readListPrec = readListPrecDefault