Ticket #2252: goodSimpl.txt

File goodSimpl.txt, 14.9 KB (added by simona, 6 years ago)

simplifier output for GoodPerform?.hs

Line 
1
2==================== Tidy Core ====================
3Fake.csEquals :: Fake.ConSys -> [Fake.Constraint]
4[RecSel]
5[Arity 1
6 NoCafRefs
7 Str: DmdType U(SA)]
8Fake.csEquals =
9  \ (tpl_B1 :: Fake.ConSys) ->
10    case tpl_B1 of tpl1_B2 { Fake.ConSys ipv_B3 ipv1_B4 -> ipv_B3 }
11
12Fake.csIneqs :: Fake.ConSys -> [Fake.Constraint]
13[RecSel]
14[Arity 1
15 NoCafRefs
16 Str: DmdType U(AS)]
17Fake.csIneqs =
18  \ (tpl_B1 :: Fake.ConSys) ->
19    case tpl_B1 of tpl1_B2 { Fake.ConSys ipv_B3 ipv1_B4 -> ipv1_B4 }
20
21Fake.terms :: Fake.Constraint -> Fake.Terms
22[RecSel]
23[Arity 1
24 NoCafRefs
25 Str: DmdType U(SA)]
26Fake.terms =
27  \ (tpl_B1 :: Fake.Constraint) ->
28    case tpl_B1 of tpl1_B2 { Fake.Constraint ipv_B3 ipv1_B4 -> ipv_B3 }
29
30Fake.coeff :: Fake.Constraint -> GHC.Num.Integer
31[RecSel]
32[Arity 1
33 NoCafRefs
34 Str: DmdType U(AS)]
35Fake.coeff =
36  \ (tpl_B1 :: Fake.Constraint) ->
37    case tpl_B1 of tpl1_B2 { Fake.Constraint ipv_B3 ipv1_B4 -> ipv1_B4 }
38
39Fake.noOfVars :: Fake.Poly -> GHC.Base.Int
40[RecSel]
41[Arity 1
42 Str: DmdType S]
43Fake.noOfVars =
44  \ (tpl_B1 :: Fake.Poly) ->
45    case tpl_B1 of tpl1_B2 {
46      __DEFAULT ->
47        GHC.Err.recSelError @ GHC.Base.Int "No match in record selector Fake.noOfVars";
48      Fake.Poly ipv_B3 ipv1_B4 -> ipv_B3
49    }
50
51Fake.conSys :: Fake.Poly -> Fake.ConSys
52[RecSel]
53[Arity 1
54 Str: DmdType S]
55Fake.conSys =
56  \ (tpl_B1 :: Fake.Poly) ->
57    case tpl_B1 of tpl1_B2 {
58      __DEFAULT ->
59        GHC.Err.recSelError @ Fake.ConSys "No match in record selector Fake.conSys";
60      Fake.Poly ipv_B3 ipv1_B4 -> ipv1_B4
61    }
62
63Fake.set :: Fake.DomVar -> GHC.Num.Integer -> Fake.Poly -> Fake.Poly
64[GlobalId]
65[Arity 3
66 NoCafRefs]
67Fake.set =
68  \ (v_a6F :: Fake.DomVar) (rhs_a6G :: GHC.Num.Integer) (p_a6H :: Fake.Poly) ->
69    p_a6H
70
71Fake.join :: Fake.Poly -> Fake.Poly -> Fake.Poly
72[GlobalId]
73[Arity 2]
74Fake.join =
75  \ (ds_ddu :: Fake.Poly) (p_a6B :: Fake.Poly) ->
76    case ds_ddu of wild_B1 {
77      Fake.Bottom -> p_a6B;
78      Fake.Poly ipv_sdY ipv1_sdZ ->
79        case p_a6B of wild1_XG {
80          Fake.Bottom -> wild_B1;
81          Fake.Poly ipv2_se2 ipv3_se3 ->
82            GHC.Err.patError @ Fake.Poly "tests/Fake.hs:(55,0)-(56,16)|function join"
83        }
84    }
85
86Fake.meetAsym :: [Fake.Constraint] -> Fake.Poly -> Fake.Poly
87[GlobalId]
88[Arity 2
89 NoCafRefs]
90Fake.meetAsym =
91  \ (ds_ddz :: [Fake.Constraint]) (ds1_ddA :: Fake.Poly) ->
92    case ds1_ddA of wild_B1 {
93      Fake.Bottom -> Fake.Bottom;
94      Fake.Poly ipv_se7 ipv1_se8 ->
95        case ds_ddz of wild1_XI {
96          [] -> Fake.Bottom;
97          : ds2_ddB ds3_ddC ->
98            case ds3_ddC of wild2_XO { [] -> wild_B1; : ipv2_sed ipv3_see -> Fake.Bottom }
99        }
100    }
101
102Fake.bottom :: Fake.Poly
103[GlobalId]
104[NoCafRefs]
105Fake.bottom = Fake.Bottom
106
107Fake.top :: GHC.Base.Int -> Fake.Poly
108[GlobalId]
109[Arity 1
110 NoCafRefs]
111Fake.top =
112  \ (n_a6t :: GHC.Base.Int) ->
113    Fake.Poly
114      n_a6t
115      (Fake.ConSys (GHC.Base.[] @ Fake.Constraint) (GHC.Base.[] @ Fake.Constraint))
116
117$dEq_rez :: GHC.Base.Eq (GHC.Num.Integer, Fake.DomVar)
118[GlobalId]
119[]
120$dEq_rez =
121  Data.Tuple.$f27 @ GHC.Num.Integer @ GHC.Base.Int GHC.Num.$f5 GHC.Base.$f2
122
123$dEq1_reB :: GHC.Base.Eq [Fake.Term]
124[GlobalId]
125[]
126$dEq1_reB = GHC.Base.$f10 @ (GHC.Num.Integer, Fake.DomVar) $dEq_rez
127
128Fake.$f1 :: GHC.Base.Eq Fake.Terms
129[GlobalId]
130[]
131Fake.$f1 =
132  $dEq1_reB
133  `cast` ((GHC.Base.:TEq) (sym (Fake.:CoTerms))
134          :: (GHC.Base.:TEq) [Fake.Term] ~ (GHC.Base.:TEq) Fake.Terms)
135
136==_reD :: Fake.Constraint -> Fake.Constraint -> GHC.Base.Bool
137[GlobalId]
138[Arity 2]
139==_reD =
140  \ (ds_ddP :: Fake.Constraint) (ds1_ddQ :: Fake.Constraint) ->
141    case ds_ddP of wild_B1 { Fake.Constraint a1_acR a2_acS ->
142    case ds1_ddQ of wild1_XN { Fake.Constraint b1_acT b2_acU ->
143    GHC.Base.&&
144      (case $dEq1_reB
145            `cast` ((GHC.Base.:TEq) (sym (Fake.:CoTerms))
146                    :: (GHC.Base.:TEq) [Fake.Term] ~ (GHC.Base.:TEq) Fake.Terms)
147       of tpl_XT { GHC.Base.:DEq tpl1_B2 tpl2_B3 ->
148       tpl1_B2 a1_acR b1_acT
149       })
150      (case GHC.Num.$f5 of tpl_XT { GHC.Base.:DEq tpl1_B2 tpl2_B3 ->
151       tpl1_B2 a2_acS b2_acU
152       })
153    }
154    }
155
156/=_reF :: Fake.Constraint -> Fake.Constraint -> GHC.Base.Bool
157[GlobalId]
158[Arity 2]
159/=_reF =
160  \ (a_acW :: Fake.Constraint) (b_acX :: Fake.Constraint) ->
161    GHC.Base.not (==_reD a_acW b_acX)
162
163Fake.$f2 :: GHC.Base.Eq Fake.Constraint
164[GlobalId]
165[]
166Fake.$f2 = GHC.Base.:DEq @ Fake.Constraint ==_reD /=_reF
167
168Fake.subset :: Fake.Poly -> Fake.Poly -> GHC.Base.Bool
169[GlobalId]
170[Arity 2]
171Fake.subset =
172  \ (ds_ddI :: Fake.Poly) (ds1_ddJ :: Fake.Poly) ->
173    let {
174      fail_ddM :: GHC.Base.Bool
175      []
176      fail_ddM =
177        GHC.Err.patError @ GHC.Base.Bool "tests/Fake.hs:3:0-64|function subset"
178    } in
179      case ds_ddI of wild_B1 {
180        Fake.Bottom -> fail_ddM;
181        Fake.Poly n1_a6q ds2_ddK ->
182          case ds1_ddJ of wild1_XS {
183            Fake.Bottom -> fail_ddM;
184            Fake.Poly n2_a6r ds3_ddL ->
185              case GHC.Base.$f2 of tpl_XY { GHC.Base.:DEq tpl1_B2 tpl2_B3 ->
186              tpl1_B2 n1_a6q n2_a6r
187              }
188          }
189      }
190
191
192
193
194==================== Tidy Core Rules ====================
195
196
197
198==================== Tidy Core ====================
199fail_rYt :: (Fake.DomVar,
200             Fake.DomVar,
201             Fake.DomVar,
202             Fake.DomVar,
203             Fake.DomVar,
204             Fake.DomVar,
205             Fake.DomVar,
206             Fake.DomVar)
207[GlobalId]
208[]
209fail_rYt =
210  GHC.Err.irrefutPatError
211    @ (Fake.DomVar,
212       Fake.DomVar,
213       Fake.DomVar,
214       Fake.DomVar,
215       Fake.DomVar,
216       Fake.DomVar,
217       Fake.DomVar,
218       Fake.DomVar)
219    "tests/GoodPerform.hs:38:0-41|(s : c : sn : u : tn : p : f : vn : _)"
220
221ds_rYv :: (Fake.DomVar,
222           Fake.DomVar,
223           Fake.DomVar,
224           Fake.DomVar,
225           Fake.DomVar,
226           Fake.DomVar,
227           Fake.DomVar,
228           Fake.DomVar)
229[GlobalId]
230[]
231ds_rYv =
232  case GHC.Enum.$f1
233  of tpl_B1
234  { GHC.Enum.:DEnum tpl1_B2
235                    tpl2_B3
236                    tpl3_B4
237                    tpl4_B5
238                    tpl5_B6
239                    tpl6_B7
240                    tpl7_B8
241                    tpl8_B9 ->
242  case tpl5_B6 (GHC.Base.I# 1) of wild_X13 {
243    [] -> fail_rYt;
244    : s1_XLd ds1_dXi ->
245      case ds1_dXi of wild1_X17 {
246        [] -> fail_rYt;
247        : c1_XLk ds2_dXj ->
248          case ds2_dXj of wild2_X1d {
249            [] -> fail_rYt;
250            : sn1_XLr ds3_dXk ->
251              case ds3_dXk of wild3_X1j {
252                [] -> fail_rYt;
253                : u1_XLy ds4_dXl ->
254                  case ds4_dXl of wild4_X1p {
255                    [] -> fail_rYt;
256                    : tn1_XLF ds5_dXm ->
257                      case ds5_dXm of wild5_X1v {
258                        [] -> fail_rYt;
259                        : p1_XLM ds6_dXn ->
260                          case ds6_dXn of wild6_X1B {
261                            [] -> fail_rYt;
262                            : f1_XLT ds7_dXo ->
263                              case ds7_dXo of wild7_X1H {
264                                [] -> fail_rYt;
265                                : vn1_XM0 ds8_dXp ->
266                                  (s1_XLd, c1_XLk, sn1_XLr, u1_XLy, tn1_XLF, p1_XLM, f1_XLT, vn1_XM0)
267                              }
268                          }
269                      }
270                  }
271              }
272          }
273      }
274  }
275  }
276
277u_ryj :: Fake.DomVar
278[GlobalId]
279[]
280u_ryj =
281  case ds_rYv
282  of ds1_XYt
283  { (s1_XL7, c1_XL9, sn1_XLb, u1_XLd, tn1_XLf, p1_XLh, f1_XLj, vn1_XLl) ->
284  u1_XLd
285  }
286
287vn_ryr :: Fake.DomVar
288[GlobalId]
289[]
290vn_ryr =
291  case ds_rYv
292  of ds1_XYx
293  { (s1_XLb, c1_XLd, sn1_XLf, u1_XLh, tn1_XLj, p1_XLl, f1_XLn, vn1_XLp) ->
294  vn1_XLp
295  }
296
297unless_rYx :: GHC.Base.Bool -> GHC.IOBase.IO () -> GHC.IOBase.IO ()
298[GlobalId]
299[]
300unless_rYx = Control.Monad.unless @ GHC.IOBase.IO GHC.IOBase.$f16
301
302replicateM__rYz :: GHC.Base.Int -> GHC.IOBase.IO () -> GHC.IOBase.IO ()
303[GlobalId]
304[]
305replicateM__rYz = Control.Monad.replicateM_ @ GHC.IOBase.IO @ () GHC.IOBase.$f16
306
307lit_rYB :: GHC.Base.Int
308[GlobalId]
309[NoCafRefs]
310lit_rYB = GHC.Base.I# 8
311
312lit1_rYD :: GHC.Num.Integer
313[GlobalId]
314[]
315lit1_rYD =
316  case GHC.Num.$f3
317  of tpl_B1
318  { GHC.Num.:DNum tpl1_B2
319                  tpl2_B3
320                  tpl3_B4
321                  tpl4_B5
322                  tpl5_B6
323                  tpl6_B7
324                  tpl7_B8
325                  tpl8_B9
326                  tpl9_Ba ->
327  tpl9_Ba (GHC.Num.S# 3)
328  }
329
330minimum_rYF :: [GHC.Num.Integer] -> GHC.Num.Integer
331[GlobalId]
332[]
333minimum_rYF = Data.List.minimum @ GHC.Num.Integer GHC.Num.$f4
334
335lit2_rYH :: GHC.Num.Integer
336[GlobalId]
337[]
338lit2_rYH =
339  case GHC.Num.$f3
340  of tpl_B1
341  { GHC.Num.:DNum tpl1_B2
342                  tpl2_B3
343                  tpl3_B4
344                  tpl4_B5
345                  tpl5_B6
346                  tpl6_B7
347                  tpl7_B8
348                  tpl8_B9
349                  tpl9_Ba ->
350  tpl9_Ba (GHC.Num.S# 100)
351  }
352
353lit3_rYJ :: GHC.Num.Integer
354[GlobalId]
355[]
356lit3_rYJ =
357  case GHC.Num.$f3
358  of tpl_B1
359  { GHC.Num.:DNum tpl1_B2
360                  tpl2_B3
361                  tpl3_B4
362                  tpl4_B5
363                  tpl5_B6
364                  tpl6_B7
365                  tpl7_B8
366                  tpl8_B9
367                  tpl9_Ba ->
368  tpl9_Ba (GHC.Num.S# 1)
369  }
370
371fixpoint_ryv :: Fake.Poly
372                -> Fake.Poly
373                -> Fake.Poly
374                -> Fake.DomVar
375                -> GHC.Num.Integer
376                -> GHC.IOBase.IO Fake.Poly
377[GlobalId]
378[Arity 5]
379fixpoint_ryv =
380  \ (sU_ayF :: Fake.Poly)
381    (sT_ayG :: Fake.Poly)
382    (oldR_ayH :: Fake.Poly)
383    (sn1_ayI :: Fake.DomVar)
384    (fval_ayJ :: GHC.Num.Integer) ->
385    let {
386      sR_ayL :: Fake.Poly
387      []
388      sR_ayL = Fake.join sU_ayF sT_ayG
389    } in
390      case GHC.Base.&&
391             (case GHC.Num.$f4
392              of tpl_B1
393              { GHC.Base.:DOrd tpl1_B2
394                               tpl2_B3
395                               tpl3_B4
396                               tpl4_B5
397                               tpl5_B6
398                               tpl6_B7
399                               tpl7_B8
400                               tpl8_B9 ->
401              tpl3_B4
402                (minimum_rYF
403                   (__letrec {
404                      ds1_dXA :: [GHC.Num.Integer] -> [GHC.Num.Integer]
405                      [Arity 1]
406                      ds1_dXA =
407                        \ (ds2_dXB :: [GHC.Num.Integer]) ->
408                          case ds2_dXB of ds3_XZ6 {
409                            [] -> GHC.Base.[] @ GHC.Num.Integer;
410                            : ds4_dXC ds5_dXD ->
411                              __letrec {
412                                ds6_dXE :: [GHC.Num.Integer] -> [GHC.Num.Integer]
413                                [Arity 1]
414                                ds6_dXE =
415                                  \ (ds7_dXF :: [GHC.Num.Integer]) ->
416                                    case ds7_dXF of ds8_XZj {
417                                      [] -> ds1_dXA ds5_dXD;
418                                      : ds9_dXG ds10_dXH ->
419                                        GHC.Base.:
420                                          @ GHC.Num.Integer
421                                          (case GHC.Num.$f3
422                                           of tpl9_X1L
423                                           { GHC.Num.:DNum tpl10_X1P
424                                                           tpl11_X1R
425                                                           tpl12_X1T
426                                                           tpl13_X1V
427                                                           tpl14_X1X
428                                                           tpl15_X1Z
429                                                           tpl16_X21
430                                                           tpl17_X23
431                                                           tpl18_Ba ->
432                                           tpl12_X1T ds4_dXC ds9_dXG
433                                           })
434                                          (ds6_dXE ds10_dXH)
435                                    };
436                              } in
437                                ds6_dXE
438                                  (case GHC.Num.$f2
439                                   of tpl9_X1F
440                                   { GHC.Enum.:DEnum tpl10_X1J
441                                                     tpl11_X1L
442                                                     tpl12_X1N
443                                                     tpl13_X1P
444                                                     tpl14_X1R
445                                                     tpl15_X1T
446                                                     tpl16_X1V
447                                                     tpl17_X1X ->
448                                   tpl16_X1V lit3_rYJ lit2_rYH
449                                   })
450                          };
451                    } in
452                      ds1_dXA
453                        (case GHC.Num.$f2
454                         of tpl9_X1w
455                         { GHC.Enum.:DEnum tpl10_X1A
456                                           tpl11_X1C
457                                           tpl12_X1E
458                                           tpl13_X1G
459                                           tpl14_X1I
460                                           tpl15_X1K
461                                           tpl16_X1M
462                                           tpl17_X1O ->
463                         tpl16_X1M lit3_rYJ lit2_rYH
464                         })))
465                lit1_rYD
466              })
467             (Fake.subset sR_ayL sR_ayL)
468      of wild_B1 {
469        GHC.Base.False ->
470          GHC.Err.error
471            @ (GHC.IOBase.IO Fake.Poly) (GHC.Base.unpackCString# "not reached");
472        GHC.Base.True ->
473          case GHC.IOBase.$f16
474          of tpl_X1k { GHC.Base.:DMonad tpl1_B2 tpl2_B3 tpl3_B4 tpl4_B5 ->
475          tpl3_B4
476            @ Fake.Poly
477            (Fake.meetAsym
478               (GHC.Base.:
479                  @ Fake.Constraint
480                  (Fake.Constraint
481                     ((GHC.Base.: @ Fake.Term (GHC.Num.S# 1, u_ryj) (GHC.Base.[] @ Fake.Term))
482                      `cast` (sym (Fake.:CoTerms) :: [Fake.Term] ~ Fake.Terms))
483                     (GHC.Num.S# 8))
484                  (GHC.Base.[] @ Fake.Constraint))
485               sR_ayL)
486          }
487      }
488
489initial_rYL :: Fake.Poly
490[GlobalId]
491[]
492initial_rYL =
493  GHC.Base.$
494    @ Fake.Poly @ Fake.Poly (Fake.set u_ryj (GHC.Num.S# 0)) (Fake.top lit_rYB)
495
496Main.main :: GHC.IOBase.IO ()
497[GlobalId]
498[]
499Main.main =
500  GHC.Base.$
501    @ (GHC.IOBase.IO ())
502    @ (GHC.IOBase.IO ())
503    (replicateM__rYz (GHC.Base.I# 1000))
504    (case GHC.IOBase.$f16
505     of tpl_B1 { GHC.Base.:DMonad tpl1_B2 tpl2_B3 tpl3_B4 tpl4_B5 ->
506     tpl1_B2
507       @ Fake.Poly
508       @ ()
509       (fixpoint_ryv initial_rYL Fake.bottom Fake.bottom vn_ryr (GHC.Num.S# 1))
510       (\ (res2_ayD :: Fake.Poly) ->
511          GHC.Base.$
512            @ (GHC.IOBase.IO ())
513            @ (GHC.IOBase.IO ())
514            (unless_rYx (Fake.subset res2_ayD res2_ayD))
515            (System.IO.putStrLn (GHC.Base.unpackCString# "something's wrong")))
516     })
517
518:Main.main :: GHC.IOBase.IO ()
519[GlobalId]
520[]
521:Main.main = GHC.TopHandler.runMainIO @ () Main.main
522
523
524
525
526==================== Tidy Core Rules ====================
527
528