Allow CSE'ing of work-wrapped bindings (#14186)
[ghc.git] / testsuite / tests / stranal / should_compile / T10482.stderr
1
2 ==================== Tidy Core ====================
3 Result size of Tidy Core = {terms: 171, types: 116, coercions: 15, joins: 0/0}
4
5 -- RHS size: {terms: 13, types: 14, coercions: 4, joins: 0/0}
6 T10482.$WFooPair [InlPrag=INLINE[2]] :: forall a b. Foo a -> Foo b -> Foo (a, b)
7 [GblId[DataConWrapper],
8  Arity=2,
9  Caf=NoCafRefs,
10  Str=<S,U><S,U>m,
11  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
12          Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=False)
13          Tmpl= \ (@ a_aWY) (@ b_aWZ) (dt_a2p0 [Occ=Once] :: Foo a_aWY[sk:1]) (dt_a2p1 [Occ=Once] :: Foo b_aWZ[sk:1]) ->
14                  (case dt_a2p0 of dt_X2p5 { __DEFAULT -> case dt_a2p1 of dt_X2p7 { __DEFAULT -> T10482.FooPair @ a_aWY @ b_aWZ dt_X2p5 dt_X2p7 } })
15                  `cast` (Sym (T10482.D:R:Foo(,)0[0] <a_aWY>_N <b_aWZ>_N) :: (T10482.R:Foo(,) a_aWY b_aWZ :: *) ~R# (Foo (a_aWY, b_aWZ) :: *))}]
16 T10482.$WFooPair
17   = \ (@ a_aWY) (@ b_aWZ) (dt_a2p0 [Occ=Once] :: Foo a_aWY[sk:1]) (dt_a2p1 [Occ=Once] :: Foo b_aWZ[sk:1]) ->
18       (case dt_a2p0 of dt_X2p5 { __DEFAULT -> case dt_a2p1 of dt_X2p7 { __DEFAULT -> T10482.FooPair @ a_aWY @ b_aWZ dt_X2p5 dt_X2p7 } })
19       `cast` (Sym (T10482.D:R:Foo(,)0[0] <a_aWY>_N <b_aWZ>_N) :: (T10482.R:Foo(,) a_aWY b_aWZ :: *) ~R# (Foo (a_aWY, b_aWZ) :: *))
20
21 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
22 T10482.$trModule4 :: GHC.Prim.Addr#
23 [GblId,
24  Caf=NoCafRefs,
25  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
26 T10482.$trModule4 = "main"#
27
28 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
29 T10482.$trModule3 :: GHC.Types.TrName
30 [GblId,
31  Caf=NoCafRefs,
32  Str=m1,
33  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
34 T10482.$trModule3 = GHC.Types.TrNameS T10482.$trModule4
35
36 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
37 T10482.$trModule2 :: GHC.Prim.Addr#
38 [GblId,
39  Caf=NoCafRefs,
40  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
41 T10482.$trModule2 = "T10482"#
42
43 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
44 T10482.$trModule1 :: GHC.Types.TrName
45 [GblId,
46  Caf=NoCafRefs,
47  Str=m1,
48  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
49 T10482.$trModule1 = GHC.Types.TrNameS T10482.$trModule2
50
51 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
52 T10482.$trModule :: GHC.Types.Module
53 [GblId,
54  Caf=NoCafRefs,
55  Str=m,
56  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
57 T10482.$trModule = GHC.Types.Module T10482.$trModule3 T10482.$trModule1
58
59 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
60 $krep_r2Pm :: GHC.Types.KindRep
61 [GblId, Caf=NoCafRefs, Str=m1]
62 $krep_r2Pm = GHC.Types.KindRepTyConApp GHC.Types.$tcInt (GHC.Types.[] @ GHC.Types.KindRep)
63
64 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
65 $krep1_r2Pn :: GHC.Types.KindRep
66 [GblId, Caf=NoCafRefs, Str=m2]
67 $krep1_r2Pn = GHC.Types.KindRepVar 1#
68
69 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
70 $krep2_r2Po :: GHC.Types.KindRep
71 [GblId, Caf=NoCafRefs, Str=m2]
72 $krep2_r2Po = GHC.Types.KindRepVar 0#
73
74 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
75 $krep3_r2Pp :: [GHC.Types.KindRep]
76 [GblId, Caf=NoCafRefs, Str=m2]
77 $krep3_r2Pp = GHC.Types.: @ GHC.Types.KindRep $krep1_r2Pn (GHC.Types.[] @ GHC.Types.KindRep)
78
79 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
80 $krep4_r2Pq :: [GHC.Types.KindRep]
81 [GblId, Caf=NoCafRefs, Str=m2]
82 $krep4_r2Pq = GHC.Types.: @ GHC.Types.KindRep $krep2_r2Po $krep3_r2Pp
83
84 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
85 $krep5_r2Pr :: GHC.Types.KindRep
86 [GblId, Caf=NoCafRefs, Str=m1]
87 $krep5_r2Pr = GHC.Types.KindRepTyConApp GHC.Tuple.$tc(,) $krep4_r2Pq
88
89 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
90 T10482.$tcFoo2 :: GHC.Prim.Addr#
91 [GblId,
92  Caf=NoCafRefs,
93  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
94 T10482.$tcFoo2 = "Foo"#
95
96 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
97 T10482.$tcFoo1 :: GHC.Types.TrName
98 [GblId,
99  Caf=NoCafRefs,
100  Str=m1,
101  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
102 T10482.$tcFoo1 = GHC.Types.TrNameS T10482.$tcFoo2
103
104 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
105 T10482.$tcFoo :: GHC.Types.TyCon
106 [GblId,
107  Caf=NoCafRefs,
108  Str=m,
109  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
110 T10482.$tcFoo = GHC.Types.TyCon 3311038889639791302## 7944995683507700778## T10482.$trModule T10482.$tcFoo1 0# GHC.Types.krep$*Arr*
111
112 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
113 $krep6_r2Ps :: [GHC.Types.KindRep]
114 [GblId, Caf=NoCafRefs, Str=m2]
115 $krep6_r2Ps = GHC.Types.: @ GHC.Types.KindRep $krep2_r2Po (GHC.Types.[] @ GHC.Types.KindRep)
116
117 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
118 $krep7_r2Pt :: GHC.Types.KindRep
119 [GblId, Caf=NoCafRefs, Str=m1]
120 $krep7_r2Pt = GHC.Types.KindRepTyConApp T10482.$tcFoo $krep6_r2Ps
121
122 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
123 $krep8_r2Pu :: GHC.Types.KindRep
124 [GblId, Caf=NoCafRefs, Str=m1]
125 $krep8_r2Pu = GHC.Types.KindRepTyConApp T10482.$tcFoo $krep3_r2Pp
126
127 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
128 $krep9_r2Pv :: [GHC.Types.KindRep]
129 [GblId, Caf=NoCafRefs, Str=m2]
130 $krep9_r2Pv = GHC.Types.: @ GHC.Types.KindRep $krep5_r2Pr (GHC.Types.[] @ GHC.Types.KindRep)
131
132 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
133 $krep10_r2Pw :: GHC.Types.KindRep
134 [GblId, Caf=NoCafRefs, Str=m1]
135 $krep10_r2Pw = GHC.Types.KindRepTyConApp T10482.$tcFoo $krep9_r2Pv
136
137 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
138 $krep11_r2Px :: GHC.Types.KindRep
139 [GblId, Caf=NoCafRefs, Str=m4]
140 $krep11_r2Px = GHC.Types.KindRepFun $krep8_r2Pu $krep10_r2Pw
141
142 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
143 T10482.$tc'FooPair1 [InlPrag=NOUSERINLINE[~]] :: GHC.Types.KindRep
144 [GblId, Caf=NoCafRefs, Str=m4]
145 T10482.$tc'FooPair1 = GHC.Types.KindRepFun $krep7_r2Pt $krep11_r2Px
146
147 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
148 $krep12_r2Py :: [GHC.Types.KindRep]
149 [GblId, Caf=NoCafRefs, Str=m2]
150 $krep12_r2Py = GHC.Types.: @ GHC.Types.KindRep $krep_r2Pm (GHC.Types.[] @ GHC.Types.KindRep)
151
152 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
153 $krep13_r2Pz :: GHC.Types.KindRep
154 [GblId, Caf=NoCafRefs, Str=m1]
155 $krep13_r2Pz = GHC.Types.KindRepTyConApp T10482.$tcFoo $krep12_r2Py
156
157 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
158 T10482.$tc'Foo1 [InlPrag=NOUSERINLINE[~]] :: GHC.Types.KindRep
159 [GblId, Caf=NoCafRefs, Str=m4]
160 T10482.$tc'Foo1 = GHC.Types.KindRepFun $krep_r2Pm $krep13_r2Pz
161
162 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
163 T10482.$tc'FooPair3 :: GHC.Prim.Addr#
164 [GblId,
165  Caf=NoCafRefs,
166  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
167 T10482.$tc'FooPair3 = "'FooPair"#
168
169 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
170 T10482.$tc'FooPair2 :: GHC.Types.TrName
171 [GblId,
172  Caf=NoCafRefs,
173  Str=m1,
174  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
175 T10482.$tc'FooPair2 = GHC.Types.TrNameS T10482.$tc'FooPair3
176
177 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
178 T10482.$tc'FooPair :: GHC.Types.TyCon
179 [GblId,
180  Caf=NoCafRefs,
181  Str=m,
182  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
183 T10482.$tc'FooPair
184   = GHC.Types.TyCon 5329411373903054066## 1455261321638291317## T10482.$trModule T10482.$tc'FooPair2 2# T10482.$tc'FooPair1
185
186 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
187 T10482.$tc'Foo3 :: GHC.Prim.Addr#
188 [GblId,
189  Caf=NoCafRefs,
190  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
191 T10482.$tc'Foo3 = "'Foo"#
192
193 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
194 T10482.$tc'Foo2 :: GHC.Types.TrName
195 [GblId,
196  Caf=NoCafRefs,
197  Str=m1,
198  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
199 T10482.$tc'Foo2 = GHC.Types.TrNameS T10482.$tc'Foo3
200
201 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
202 T10482.$tc'Foo :: GHC.Types.TyCon
203 [GblId,
204  Caf=NoCafRefs,
205  Str=m,
206  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
207 T10482.$tc'Foo = GHC.Types.TyCon 5096937192618987042## 15136671864408054946## T10482.$trModule T10482.$tc'Foo2 0# T10482.$tc'Foo1
208
209 Rec {
210 -- RHS size: {terms: 19, types: 4, coercions: 0, joins: 0/0}
211 T10482.$wfoo [InlPrag=NOUSERINLINE[0], Occ=LoopBreaker] :: GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
212 [GblId, Arity=2, Caf=NoCafRefs, Str=<L,1*U><S,1*U>]
213 T10482.$wfoo
214   = \ (ww_s2NS :: GHC.Prim.Int#) (ww1_s2O0 :: GHC.Prim.Int#) ->
215       case ww1_s2O0 of wild_X1r {
216         __DEFAULT ->
217           case GHC.Prim.remInt# wild_X1r 2# of {
218             __DEFAULT -> ww_s2NS;
219             0# -> T10482.$wfoo ww_s2NS (GHC.Prim.-# wild_X1r 1#)
220           };
221         0# -> 0#
222       }
223 end Rec }
224
225 -- RHS size: {terms: 21, types: 30, coercions: 11, joins: 0/0}
226 foo [InlPrag=NOUSERINLINE[0]] :: Foo ((Int, Int), Int) -> Int -> Int
227 [GblId,
228  Arity=2,
229  Caf=NoCafRefs,
230  Str=<S(S(S(S)L)L),1*U(U(U(1*U),A),A)><S(S),1*U(1*U)>m,
231  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
232          Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=False)
233          Tmpl= \ (w_s2NI [Occ=Once] :: Foo ((Int, Int), Int)) (w1_s2NJ [Occ=Once!] :: Int) ->
234                  case w_s2NI
235                       `cast` (T10482.D:R:Foo(,)0[0] <(Int, Int)>_N <Int>_N :: (Foo ((Int, Int), Int) :: *) ~R# (T10482.R:Foo(,) (Int, Int) Int :: *))
236                  of
237                  { FooPair ww1_s2NM [Occ=Once] _ [Occ=Dead] ->
238                  case ww1_s2NM `cast` (T10482.D:R:Foo(,)0[0] <Int>_N <Int>_N :: (Foo (Int, Int) :: *) ~R# (T10482.R:Foo(,) Int Int :: *)) of
239                  { FooPair ww4_s2NP [Occ=Once] _ [Occ=Dead] ->
240                  case ww4_s2NP `cast` (T10482.D:R:FooInt0[0] ; T10482.N:R:FooInt[0] :: (Foo Int :: *) ~R# (Int :: *)) of
241                  { GHC.Types.I# ww7_s2NS [Occ=Once] ->
242                  case w1_s2NJ of { GHC.Types.I# ww9_s2O0 [Occ=Once] ->
243                  case T10482.$wfoo ww7_s2NS ww9_s2O0 of ww10_s2O4 { __DEFAULT -> GHC.Types.I# ww10_s2O4 }
244                  }
245                  }
246                  }
247                  }}]
248 foo
249   = \ (w_s2NI :: Foo ((Int, Int), Int)) (w1_s2NJ :: Int) ->
250       case w_s2NI
251            `cast` (T10482.D:R:Foo(,)0[0] <(Int, Int)>_N <Int>_N :: (Foo ((Int, Int), Int) :: *) ~R# (T10482.R:Foo(,) (Int, Int) Int :: *))
252       of
253       { FooPair ww1_s2NM ww2_s2NW ->
254       case ww1_s2NM `cast` (T10482.D:R:Foo(,)0[0] <Int>_N <Int>_N :: (Foo (Int, Int) :: *) ~R# (T10482.R:Foo(,) Int Int :: *)) of
255       { FooPair ww4_s2OE ww5_s2OF ->
256       case ww4_s2OE `cast` (T10482.D:R:FooInt0[0] ; T10482.N:R:FooInt[0] :: (Foo Int :: *) ~R# (Int :: *)) of { GHC.Types.I# ww7_s2OI ->
257       case w1_s2NJ of { GHC.Types.I# ww9_s2O0 -> case T10482.$wfoo ww7_s2OI ww9_s2O0 of ww10_s2O4 { __DEFAULT -> GHC.Types.I# ww10_s2O4 } }
258       }
259       }
260       }
261
262
263