2 Test.a :: for all d, e, f, g. ([d], [e], [f]) -> [g]
3 Test.a = /\ t118 t119 t120 t121 -> \ ds.314 -> Nil! t121
4 Test.b :: for all d, e. [d] -> [e]
6 /\ t134 t135 -> \ ds.323 ->
12 (:) xs.326 ys.327 -> x.324
15 "``impossible'' pattern-matching error!\n"S
17 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
24 (:) xs.331 ys.332 -> xs.331
27 "``impossible'' pattern-matching error!\n"S
29 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
36 (:) xs.336 ys.337 -> ys.337
39 "``impossible'' pattern-matching error!\n"S
41 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
44 Test.c :: for all d, e, f, g. <Fractional f> -> <Num e> -> g -> d -> e -> f -> g
46 /\ o139 t140 t143 o138 -> \ dict.144 dict.141 ->
48 dict.145 = (sdsel.Num.Eq t143) ((sdsel.Fractional.Num t143) dict.144) in
49 let dict.142 = (sdsel.Num.Eq t140) dict.141 in
50 let c.137 = \ x.87 ds.339 ds.340 ds.341 -> let x.87 = x.87 in x.87
52 Test.d :: for all d, e. <Num e> -> <Ord d> -> <Num d> -> d -> e
54 /\ t171 t174 -> \ dict.175 dict.173 dict.172 ->
55 let dict.169 = dict.175 in
56 let dict.163 = dict.169 in
57 let dict.157 = dict.163 in
58 let dict.152 = dict.157 in
59 let dict.166 = dict.172 in
60 let dict.160 = dict.166 in
61 let dict.154 = dict.160 in
62 let dict.149 = dict.154 in
63 let dict.167 = dict.173 in
64 let dict.161 = dict.167 in
65 let dict.155 = (sdsel.Ord.Eq t171) dict.161 in
66 let dict.150 = dict.155 in
73 "\"ds020.hs\", line 17: pattern-matching failure [function binding]\n"S in
80 (fromInteger t171) dict.160 (MkInteger! 4##)
87 dict.160 (MkInteger! 4##)))
96 dict.160 (MkInteger! 4##))
100 "``impossible'' pattern-matching error!\n"S
102 in (fromInteger t174) dict.163 (MkInteger! 2##)
107 ((fromInteger t171) dict.149 (MkInteger! 11##))
110 True -> (fromInteger t174) dict.152 (MkInteger! 4##)
116 dict.154 (MkInteger! 12##))
119 True -> (fromInteger t174) dict.157 (MkInteger! 3##)
124 Test.f :: for all d, e. [d] -> [e]
126 /\ t182 t183 -> \ x.352 ->
131 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
134 Test.g :: for all d, e. [d] -> [e]
135 Test.g = /\ t186 t187 -> \ ds.356 -> Nil! t187
136 ds.357 :: ([t191], [t192], [t193])
137 ds.357 = MkTuple3! [t191] [t192] [t193] (Nil! t191) (Nil! t192) (Nil! t193)
138 ds.358 :: ([t197], [t198], [t199])
139 ds.358 = MkTuple3! [t197] [t198] [t199] (Nil! t197) (Nil! t198) (Nil! t199)
141 ds.359 = /\ t208 -> Nil! t208
142 Test.x1 :: for all d. d
148 (:) xs1.365 ys1.366 -> x1.363
149 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
151 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
153 Test.xs1 :: for all d. d
159 (:) xs1.369 ys1.370 -> xs1.369
160 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
162 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
164 Test.ys1 :: for all d. [d]
170 (:) xs1.373 ys1.374 -> ys1.374
171 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
173 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
176 ds.375 = /\ t217 -> Nil! t217
177 Test.x :: for all d. d
184 let ys.383 = ys.382 in
185 let xs.384 = xs.381 in let x.385 = x.379 in x.385
186 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
188 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
190 Test.xs :: for all d. d
197 let ys.390 = ys.389 in
198 let xs.391 = xs.388 in let x.392 = x.386 in xs.391
199 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
201 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
203 Test.ys :: for all d. [d]
210 let ys.397 = ys.396 in
211 let xs.398 = xs.395 in let x.399 = x.393 in ys.397
212 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
214 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
220 let dict.410 = dfun.Eq.Int in
224 (let dict.411 = dfun.Num.Int in MkInt! 2#)
225 (let dict.412 = dfun.Num.Int in MkInt! 4#) in
226 let dict.414 = dfun.Eq.Int in
230 (let dict.415 = dfun.Num.Int in MkInt! 3#)
231 (let dict.416 = dfun.Num.Int in MkInt! 3#) in
232 let dict.418 = dfun.Eq.Int in
236 (let dict.419 = dfun.Num.Int in MkInt! 4#)
237 (let dict.420 = dfun.Num.Int in MkInt! 2#)
243 True -> :! t254 (Test.x2 t254) (Nil! t254)
246 True -> :! t254 (Test.x2 t254) (Nil! t254)
251 Test.x2 :: for all d. d
257 (:) xs2.424 ys2.425 -> x2.422
258 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
260 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
262 Test.xs2 :: for all d. d
268 (:) xs2.428 ys2.429 -> xs2.428
269 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
271 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
273 Test.ys2 :: for all d. [d]
279 (:) xs2.432 ys2.433 -> ys2.433
280 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
282 _ -> (error Char) "``impossible'' pattern-matching error!\n"S
284 {- end plain CoRec -}
285 ds.435 :: for all d, e. <Num e> -> <Ord d> -> <Num d> -> (d, e)
287 /\ t273 t275 -> \ dict.276 dict.269 dict.274 ->
288 let dict.267 = dict.276 in
289 let dict.271 = dict.274 in
290 let dict.265 = dict.271 in
291 let dict.262 = dict.265 in
292 let dict.260 = dict.269
301 ((fromInteger t273) dict.262 (MkInteger! 3##)))
307 ((fromInteger t273) dict.265 (MkInteger! 4##))
308 ((fromInteger t275) dict.267 (MkInteger! 5##))
314 ((fromInteger t273) dict.271 (MkInteger! 3##)))
320 ((fromInteger t273) dict.274 (MkInteger! 2##))
321 ((fromInteger t275) dict.276 (MkInteger! 3##))
324 "\"ds020.hs\", line 42: pattern-matching failure [pat binding]\n"S
329 MkTuple2 x3.257 y3.258 -> x3.257
333 MkTuple2 x3.257 y3.258 -> y3.258
336 in MkTuple2! t273 t275 x3.257 y3.258
337 Test.x3 :: for all d, e. <Num e> -> <Ord d> -> <Num d> -> d
339 /\ t273 t275 -> \ dict.276 dict.269 dict.274 ->
340 case (((ds.435 t273) t275) dict.276 dict.269 dict.274) of {
341 MkTuple2 x3.257 y3.258 -> x3.257
343 Test.y3 :: for all d, e. <Num e> -> <Ord d> -> <Num d> -> e
345 /\ t273 t275 -> \ dict.276 dict.269 dict.274 ->
346 case (((ds.435 t273) t275) dict.276 dict.269 dict.274) of {
347 MkTuple2 x3.257 y3.258 -> y3.258
349 ds.442 :: (Char, (Char, (Char, Char)))
351 let dict.451 = dfun.Eq.Int in
355 (let dict.452 = dfun.Num.Int in MkInt! 2#)
356 (let dict.453 = dfun.Num.Int in MkInt! 4#) in
357 let dict.455 = dfun.Eq.Int in
361 (let dict.456 = dfun.Num.Int in MkInt! 3#)
362 (let dict.457 = dfun.Num.Int in MkInt! 3#) in
363 let dict.459 = dfun.Eq.Int in
367 (let dict.460 = dfun.Num.Int in MkInt! 4#)
368 (let dict.461 = dfun.Num.Int in MkInt! 2#)
380 (MkTuple2! Char Char (MkChar! 'a'#) (MkChar! 'a'#)))
392 (MkTuple2! Char Char (MkChar! 'b'#) (MkChar! 'b'#)))
405 Char Char (MkChar! 'c'#) (MkChar! 'c'#)))
416 Char Char (MkChar! 'd'#) (MkChar! 'd'#)))
423 MkTuple2 x4.463 ds.464 ->
425 MkTuple2 y4.465 ds.466 ->
427 MkTuple2 z4.467 a4.468 -> x4.463
434 MkTuple2 x4.469 ds.470 ->
436 MkTuple2 y4.471 ds.472 ->
438 MkTuple2 z4.473 a4.474 -> y4.471
445 MkTuple2 x4.475 ds.476 ->
447 MkTuple2 y4.477 ds.478 ->
449 MkTuple2 z4.479 a4.480 -> z4.479
456 MkTuple2 x4.481 ds.482 ->
458 MkTuple2 y4.483 ds.484 ->
460 MkTuple2 z4.485 a4.486 -> a4.486