Allow CSE'ing of work-wrapped bindings (#14186)
[ghc.git] / testsuite / tests / stranal / should_compile / T10482a.stderr
1
2 ==================== Tidy Core ====================
3 Result size of Tidy Core = {terms: 353, types: 155, coercions: 3, joins: 0/0}
4
5 -- RHS size: {terms: 9, types: 8, coercions: 0, joins: 0/0}
6 Foo.$WMkT4 [InlPrag=INLINE[2]] :: forall a. Foo a -> Int -> T4 a
7 [GblId[DataConWrapper],
8  Arity=2,
9  Caf=NoCafRefs,
10  Str=<S,U><L,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_atD) (dt_a21t [Occ=Once] :: Foo a_atD[sk:1]) (dt_a21u [Occ=Once] :: Int) ->
14                  case dt_a21t of dt_X21x { __DEFAULT -> Foo.MkT4 @ a_atD dt_X21x dt_a21u }}]
15 Foo.$WMkT4
16   = \ (@ a_atD) (dt_a21t [Occ=Once] :: Foo a_atD[sk:1]) (dt_a21u [Occ=Once] :: Int) ->
17       case dt_a21t of dt_X21x { __DEFAULT -> Foo.MkT4 @ a_atD dt_X21x dt_a21u }
18
19 -- RHS size: {terms: 8, types: 3, coercions: 0, joins: 0/0}
20 Foo.$WMkT2 [InlPrag=INLINE[2]] :: Int -> Int -> T2
21 [GblId[DataConWrapper],
22  Arity=2,
23  Caf=NoCafRefs,
24  Str=<S,U><L,U>m,
25  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
26          Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=False)
27          Tmpl= \ (dt_a20k [Occ=Once] :: Int) (dt_a20l [Occ=Once] :: Int) ->
28                  case dt_a20k of dt_X20n { __DEFAULT -> Foo.MkT2 dt_X20n dt_a20l }}]
29 Foo.$WMkT2
30   = \ (dt_a20k [Occ=Once] :: Int) (dt_a20l [Occ=Once] :: Int) -> case dt_a20k of dt_X20n { __DEFAULT -> Foo.MkT2 dt_X20n dt_a20l }
31
32 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
33 Foo.$trModule4 :: GHC.Prim.Addr#
34 [GblId,
35  Caf=NoCafRefs,
36  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
37 Foo.$trModule4 = "main"#
38
39 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
40 Foo.$trModule3 :: GHC.Types.TrName
41 [GblId,
42  Caf=NoCafRefs,
43  Str=m1,
44  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
45 Foo.$trModule3 = GHC.Types.TrNameS Foo.$trModule4
46
47 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
48 Foo.$trModule2 :: GHC.Prim.Addr#
49 [GblId,
50  Caf=NoCafRefs,
51  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
52 Foo.$trModule2 = "Foo"#
53
54 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
55 Foo.$trModule1 :: GHC.Types.TrName
56 [GblId,
57  Caf=NoCafRefs,
58  Str=m1,
59  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
60 Foo.$trModule1 = GHC.Types.TrNameS Foo.$trModule2
61
62 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
63 Foo.$trModule :: GHC.Types.Module
64 [GblId,
65  Caf=NoCafRefs,
66  Str=m,
67  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 30}]
68 Foo.$trModule = GHC.Types.Module Foo.$trModule3 Foo.$trModule1
69
70 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
71 $krep_r2nI :: GHC.Types.KindRep
72 [GblId, Caf=NoCafRefs, Str=m1]
73 $krep_r2nI = GHC.Types.KindRepTyConApp GHC.Types.$tcInt (GHC.Types.[] @ GHC.Types.KindRep)
74
75 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
76 $krep1_r2nJ :: GHC.Types.KindRep
77 [GblId, Caf=NoCafRefs, Str=m2]
78 $krep1_r2nJ = GHC.Types.KindRepVar 0#
79
80 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
81 Foo.$tcT5 :: GHC.Prim.Addr#
82 [GblId,
83  Caf=NoCafRefs,
84  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
85 Foo.$tcT5 = "T2"#
86
87 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
88 Foo.$tcT1 :: GHC.Types.TrName
89 [GblId,
90  Caf=NoCafRefs,
91  Str=m1,
92  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
93 Foo.$tcT1 = GHC.Types.TrNameS Foo.$tcT5
94
95 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
96 Foo.$tcT2 :: GHC.Types.TyCon
97 [GblId,
98  Caf=NoCafRefs,
99  Str=m,
100  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
101 Foo.$tcT2 = GHC.Types.TyCon 12492463661685256209## 1082997131366389398## Foo.$trModule Foo.$tcT1 0# GHC.Types.krep$*
102
103 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
104 $krep2_r2nK :: GHC.Types.KindRep
105 [GblId, Caf=NoCafRefs, Str=m1]
106 $krep2_r2nK = GHC.Types.KindRepTyConApp Foo.$tcT2 (GHC.Types.[] @ GHC.Types.KindRep)
107
108 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
109 $krep3_r2nL :: GHC.Types.KindRep
110 [GblId, Caf=NoCafRefs, Str=m4]
111 $krep3_r2nL = GHC.Types.KindRepFun $krep_r2nI $krep2_r2nK
112
113 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
114 Foo.$tc'MkT1 [InlPrag=NOUSERINLINE[~]] :: GHC.Types.KindRep
115 [GblId, Caf=NoCafRefs, Str=m4]
116 Foo.$tc'MkT1 = GHC.Types.KindRepFun $krep_r2nI $krep3_r2nL
117
118 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
119 Foo.$tc'MkT6 :: GHC.Prim.Addr#
120 [GblId,
121  Caf=NoCafRefs,
122  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
123 Foo.$tc'MkT6 = "'MkT2"#
124
125 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
126 Foo.$tc'MkT5 :: GHC.Types.TrName
127 [GblId,
128  Caf=NoCafRefs,
129  Str=m1,
130  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
131 Foo.$tc'MkT5 = GHC.Types.TrNameS Foo.$tc'MkT6
132
133 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
134 Foo.$tc'MkT2 :: GHC.Types.TyCon
135 [GblId,
136  Caf=NoCafRefs,
137  Str=m,
138  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
139 Foo.$tc'MkT2 = GHC.Types.TyCon 5707542518475997625## 9584804394183763875## Foo.$trModule Foo.$tc'MkT5 0# Foo.$tc'MkT1
140
141 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
142 Foo.$tcT7 :: GHC.Prim.Addr#
143 [GblId,
144  Caf=NoCafRefs,
145  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
146 Foo.$tcT7 = "T3"#
147
148 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
149 Foo.$tcT6 :: GHC.Types.TrName
150 [GblId,
151  Caf=NoCafRefs,
152  Str=m1,
153  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
154 Foo.$tcT6 = GHC.Types.TrNameS Foo.$tcT7
155
156 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
157 Foo.$tcT3 :: GHC.Types.TyCon
158 [GblId,
159  Caf=NoCafRefs,
160  Str=m,
161  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
162 Foo.$tcT3 = GHC.Types.TyCon 8915518733037212359## 16476420519216613869## Foo.$trModule Foo.$tcT6 0# GHC.Types.krep$*
163
164 -- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
165 $krep4_r2nM :: GHC.Types.KindRep
166 [GblId, Caf=NoCafRefs, Str=m1]
167 $krep4_r2nM = GHC.Types.KindRepTyConApp Foo.$tcT3 (GHC.Types.[] @ GHC.Types.KindRep)
168
169 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
170 $krep5_r2nN :: GHC.Types.KindRep
171 [GblId, Caf=NoCafRefs, Str=m4]
172 $krep5_r2nN = GHC.Types.KindRepFun $krep_r2nI $krep4_r2nM
173
174 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
175 Foo.$tc'MkT7 [InlPrag=NOUSERINLINE[~]] :: GHC.Types.KindRep
176 [GblId, Caf=NoCafRefs, Str=m4]
177 Foo.$tc'MkT7 = GHC.Types.KindRepFun $krep_r2nI $krep5_r2nN
178
179 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
180 Foo.$tc'MkT9 :: GHC.Prim.Addr#
181 [GblId,
182  Caf=NoCafRefs,
183  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
184 Foo.$tc'MkT9 = "'MkT3"#
185
186 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
187 Foo.$tc'MkT8 :: GHC.Types.TrName
188 [GblId,
189  Caf=NoCafRefs,
190  Str=m1,
191  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
192 Foo.$tc'MkT8 = GHC.Types.TrNameS Foo.$tc'MkT9
193
194 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
195 Foo.$tc'MkT3 :: GHC.Types.TyCon
196 [GblId,
197  Caf=NoCafRefs,
198  Str=m,
199  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
200 Foo.$tc'MkT3 = GHC.Types.TyCon 7218783144619306039## 13236146459150723629## Foo.$trModule Foo.$tc'MkT8 0# Foo.$tc'MkT7
201
202 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
203 Foo.$tcFoo :: GHC.Types.TyCon
204 [GblId,
205  Caf=NoCafRefs,
206  Str=m,
207  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
208 Foo.$tcFoo = GHC.Types.TyCon 11236787750777559483## 2472662601374496863## Foo.$trModule Foo.$trModule1 0# GHC.Types.krep$*Arr*
209
210 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
211 $krep6_r2nO :: [GHC.Types.KindRep]
212 [GblId, Caf=NoCafRefs, Str=m2]
213 $krep6_r2nO = GHC.Types.: @ GHC.Types.KindRep $krep1_r2nJ (GHC.Types.[] @ GHC.Types.KindRep)
214
215 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
216 $krep7_r2nP :: GHC.Types.KindRep
217 [GblId, Caf=NoCafRefs, Str=m1]
218 $krep7_r2nP = GHC.Types.KindRepTyConApp Foo.$tcFoo $krep6_r2nO
219
220 -- RHS size: {terms: 3, types: 2, coercions: 0, joins: 0/0}
221 $krep8_r2nQ :: [GHC.Types.KindRep]
222 [GblId, Caf=NoCafRefs, Str=m2]
223 $krep8_r2nQ = GHC.Types.: @ GHC.Types.KindRep $krep_r2nI (GHC.Types.[] @ GHC.Types.KindRep)
224
225 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
226 $krep9_r2nR :: GHC.Types.KindRep
227 [GblId, Caf=NoCafRefs, Str=m1]
228 $krep9_r2nR = GHC.Types.KindRepTyConApp Foo.$tcFoo $krep8_r2nQ
229
230 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
231 Foo.$tc'Foo1 [InlPrag=NOUSERINLINE[~]] :: GHC.Types.KindRep
232 [GblId, Caf=NoCafRefs, Str=m4]
233 Foo.$tc'Foo1 = GHC.Types.KindRepFun $krep_r2nI $krep9_r2nR
234
235 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
236 Foo.$tc'Foo3 :: GHC.Prim.Addr#
237 [GblId,
238  Caf=NoCafRefs,
239  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
240 Foo.$tc'Foo3 = "'Foo"#
241
242 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
243 Foo.$tc'Foo2 :: GHC.Types.TrName
244 [GblId,
245  Caf=NoCafRefs,
246  Str=m1,
247  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
248 Foo.$tc'Foo2 = GHC.Types.TrNameS Foo.$tc'Foo3
249
250 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
251 Foo.$tc'Foo :: GHC.Types.TyCon
252 [GblId,
253  Caf=NoCafRefs,
254  Str=m,
255  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
256 Foo.$tc'Foo = GHC.Types.TyCon 10641757595611461765## 13961773224584044648## Foo.$trModule Foo.$tc'Foo2 0# Foo.$tc'Foo1
257
258 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
259 Foo.$tcT9 :: GHC.Prim.Addr#
260 [GblId,
261  Caf=NoCafRefs,
262  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
263 Foo.$tcT9 = "T4"#
264
265 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
266 Foo.$tcT8 :: GHC.Types.TrName
267 [GblId,
268  Caf=NoCafRefs,
269  Str=m1,
270  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
271 Foo.$tcT8 = GHC.Types.TrNameS Foo.$tcT9
272
273 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
274 Foo.$tcT4 :: GHC.Types.TyCon
275 [GblId,
276  Caf=NoCafRefs,
277  Str=m,
278  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
279 Foo.$tcT4 = GHC.Types.TyCon 15961711399118996930## 13694522307176382499## Foo.$trModule Foo.$tcT8 0# GHC.Types.krep$*Arr*
280
281 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
282 $krep10_r2nS :: GHC.Types.KindRep
283 [GblId, Caf=NoCafRefs, Str=m1]
284 $krep10_r2nS = GHC.Types.KindRepTyConApp Foo.$tcT4 $krep6_r2nO
285
286 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
287 $krep11_r2nT :: GHC.Types.KindRep
288 [GblId, Caf=NoCafRefs, Str=m4]
289 $krep11_r2nT = GHC.Types.KindRepFun $krep_r2nI $krep10_r2nS
290
291 -- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
292 Foo.$tc'MkT10 [InlPrag=NOUSERINLINE[~]] :: GHC.Types.KindRep
293 [GblId, Caf=NoCafRefs, Str=m4]
294 Foo.$tc'MkT10 = GHC.Types.KindRepFun $krep7_r2nP $krep11_r2nT
295
296 -- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
297 Foo.$tc'MkT12 :: GHC.Prim.Addr#
298 [GblId,
299  Caf=NoCafRefs,
300  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 30 0}]
301 Foo.$tc'MkT12 = "'MkT4"#
302
303 -- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
304 Foo.$tc'MkT11 :: GHC.Types.TrName
305 [GblId,
306  Caf=NoCafRefs,
307  Str=m1,
308  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 20}]
309 Foo.$tc'MkT11 = GHC.Types.TrNameS Foo.$tc'MkT12
310
311 -- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
312 Foo.$tc'MkT4 :: GHC.Types.TyCon
313 [GblId,
314  Caf=NoCafRefs,
315  Str=m,
316  Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 70}]
317 Foo.$tc'MkT4 = GHC.Types.TyCon 6077781708614236332## 14823286043222481570## Foo.$trModule Foo.$tc'MkT11 1# Foo.$tc'MkT10
318
319 Rec {
320 -- RHS size: {terms: 14, types: 3, coercions: 0, joins: 0/0}
321 Foo.$wf4 [InlPrag=NOUSERINLINE[0], Occ=LoopBreaker] :: GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
322 [GblId, Arity=2, Caf=NoCafRefs, Str=<S,1*U><S,U>]
323 Foo.$wf4
324   = \ (ww_s2iK :: GHC.Prim.Int#) (ww1_s2iP :: GHC.Prim.Int#) ->
325       case GHC.Prim.># ww1_s2iP 0# of {
326         __DEFAULT -> ww_s2iK;
327         1# -> Foo.$wf4 ww_s2iK (GHC.Prim.-# ww1_s2iP 1#)
328       }
329 end Rec }
330
331 -- RHS size: {terms: 17, types: 12, coercions: 3, joins: 0/0}
332 f4 [InlPrag=NOUSERINLINE[0]] :: T4 Int -> Int
333 [GblId,
334  Arity=1,
335  Caf=NoCafRefs,
336  Str=<S(S(S)S(S)),1*U(U(1*U),1*U(U))>m,
337  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
338          Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
339          Tmpl= \ (w_s2iE [Occ=Once!] :: T4 Int) ->
340                  case w_s2iE of { MkT4 ww1_s2iH [Occ=Once] ww2_s2iM [Occ=Once!] ->
341                  case ww1_s2iH `cast` (Foo.D:R:FooInt0[0] ; Foo.N:R:FooInt[0] :: (Foo Int :: *) ~R# (Int :: *)) of
342                  { GHC.Types.I# ww4_s2iK [Occ=Once] ->
343                  case ww2_s2iM of { GHC.Types.I# ww6_s2iP [Occ=Once] ->
344                  case Foo.$wf4 ww4_s2iK ww6_s2iP of ww7_s2iU { __DEFAULT -> GHC.Types.I# ww7_s2iU }
345                  }
346                  }
347                  }}]
348 f4
349   = \ (w_s2iE :: T4 Int) ->
350       case w_s2iE of { MkT4 ww1_s2iH ww2_s2iM ->
351       case ww1_s2iH `cast` (Foo.D:R:FooInt0[0] ; Foo.N:R:FooInt[0] :: (Foo Int :: *) ~R# (Int :: *)) of { GHC.Types.I# ww4_s2lV ->
352       case ww2_s2iM of { GHC.Types.I# ww6_s2iP -> case Foo.$wf4 ww4_s2lV ww6_s2iP of ww7_s2iU { __DEFAULT -> GHC.Types.I# ww7_s2iU } }
353       }
354       }
355
356 Rec {
357 -- RHS size: {terms: 21, types: 4, coercions: 0, joins: 0/0}
358 Foo.$wf2 [InlPrag=NOUSERINLINE[0], Occ=LoopBreaker] :: GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
359 [GblId, Arity=2, Caf=NoCafRefs, Str=<L,1*U><S,U>]
360 Foo.$wf2
361   = \ (ww_s2j2 :: GHC.Prim.Int#) (ww1_s2j7 :: GHC.Prim.Int#) ->
362       case GHC.Prim.># ww1_s2j7 0# of {
363         __DEFAULT ->
364           case GHC.Prim.># ww1_s2j7 1# of {
365             __DEFAULT -> ww_s2j2;
366             1# -> 1#
367           };
368         1# -> Foo.$wf2 ww_s2j2 (GHC.Prim.-# ww1_s2j7 1#)
369       }
370 end Rec }
371
372 -- RHS size: {terms: 17, types: 9, coercions: 0, joins: 0/0}
373 f2 [InlPrag=NOUSERINLINE[0]] :: T2 -> Int
374 [GblId,
375  Arity=1,
376  Caf=NoCafRefs,
377  Str=<S(S(S)S(S)),1*U(U(1*U),1*U(U))>m,
378  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
379          Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
380          Tmpl= \ (w_s2iW [Occ=Once!] :: T2) ->
381                  case w_s2iW of { MkT2 ww1_s2iZ [Occ=Once!] ww2_s2j4 [Occ=Once!] ->
382                  case ww1_s2iZ of { GHC.Types.I# ww4_s2j2 [Occ=Once] ->
383                  case ww2_s2j4 of { GHC.Types.I# ww6_s2j7 [Occ=Once] ->
384                  case Foo.$wf2 ww4_s2j2 ww6_s2j7 of ww7_s2jc { __DEFAULT -> GHC.Types.I# ww7_s2jc }
385                  }
386                  }
387                  }}]
388 f2
389   = \ (w_s2iW :: T2) ->
390       case w_s2iW of { MkT2 ww1_s2iZ ww2_s2j4 ->
391       case ww1_s2iZ of { GHC.Types.I# ww4_s2lY ->
392       case ww2_s2j4 of { GHC.Types.I# ww6_s2j7 -> case Foo.$wf2 ww4_s2lY ww6_s2j7 of ww7_s2jc { __DEFAULT -> GHC.Types.I# ww7_s2jc } }
393       }
394       }
395
396 Rec {
397 -- RHS size: {terms: 15, types: 4, coercions: 0, joins: 0/0}
398 Foo.$wh [InlPrag=NOUSERINLINE[0], Occ=LoopBreaker] :: GHC.Prim.Int# -> GHC.Prim.Int# -> Bool
399 [GblId, Arity=2, Caf=NoCafRefs, Str=<S,1*U><S,U>]
400 Foo.$wh
401   = \ (ww_s2ji :: GHC.Prim.Int#) (ww1_s2jm :: GHC.Prim.Int#) ->
402       case ww_s2ji of ds_X2fq {
403         __DEFAULT -> Foo.$wh (GHC.Prim.-# ds_X2fq 1#) ww1_s2jm;
404         0# -> GHC.Prim.tagToEnum# @ Bool (GHC.Prim.># ww1_s2jm 0#)
405       }
406 end Rec }
407
408 -- RHS size: {terms: 11, types: 6, coercions: 0, joins: 0/0}
409 h [InlPrag=NOUSERINLINE[0]] :: Int -> Int -> Bool
410 [GblId,
411  Arity=2,
412  Caf=NoCafRefs,
413  Str=<S(S),1*U(1*U)><S(S),1*U(U)>,
414  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
415          Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=False)
416          Tmpl= \ (w_s2je [Occ=Once!] :: Int) (w1_s2jf [Occ=Once!] :: Int) ->
417                  case w_s2je of { GHC.Types.I# ww1_s2ji [Occ=Once] ->
418                  case w1_s2jf of { GHC.Types.I# ww3_s2jm [Occ=Once] -> Foo.$wh ww1_s2ji ww3_s2jm }
419                  }}]
420 h = \ (w_s2je :: Int) (w1_s2jf :: Int) ->
421       case w_s2je of { GHC.Types.I# ww1_s2ji -> case w1_s2jf of { GHC.Types.I# ww3_s2jm -> Foo.$wh ww1_s2ji ww3_s2jm } }
422
423 Rec {
424 -- RHS size: {terms: 12, types: 2, coercions: 0, joins: 0/0}
425 Foo.$wf1 [InlPrag=NOUSERINLINE[0], Occ=LoopBreaker] :: GHC.Prim.Int# -> GHC.Prim.Int#
426 [GblId, Arity=1, Caf=NoCafRefs, Str=<S,U>]
427 Foo.$wf1
428   = \ (ww_s2js :: GHC.Prim.Int#) ->
429       case Foo.$wh ww_s2js ww_s2js of {
430         False -> Foo.$wf1 (GHC.Prim.-# ww_s2js 1#);
431         True -> ww_s2js
432       }
433 end Rec }
434
435 -- RHS size: {terms: 10, types: 4, coercions: 0, joins: 0/0}
436 f1 [InlPrag=NOUSERINLINE[0]] :: Int -> Int
437 [GblId,
438  Arity=1,
439  Caf=NoCafRefs,
440  Str=<S(S),1*U(U)>m,
441  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
442          Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
443          Tmpl= \ (w_s2jp [Occ=Once!] :: Int) ->
444                  case w_s2jp of { GHC.Types.I# ww1_s2js [Occ=Once] -> case Foo.$wf1 ww1_s2js of ww2_s2jw { __DEFAULT -> GHC.Types.I# ww2_s2jw } }}]
445 f1
446   = \ (w_s2jp :: Int) ->
447       case w_s2jp of { GHC.Types.I# ww1_s2js -> case Foo.$wf1 ww1_s2js of ww2_s2jw { __DEFAULT -> GHC.Types.I# ww2_s2jw } }
448
449 Rec {
450 -- RHS size: {terms: 14, types: 3, coercions: 0, joins: 0/0}
451 Foo.$wf3 [InlPrag=NOUSERINLINE[0], Occ=LoopBreaker] :: GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
452 [GblId, Arity=2, Caf=NoCafRefs, Str=<S,U><S,U>]
453 Foo.$wf3
454   = \ (ww_s2jE :: GHC.Prim.Int#) (ww1_s2jJ :: GHC.Prim.Int#) ->
455       case Foo.$wh ww_s2jE ww1_s2jJ of {
456         False -> ww_s2jE;
457         True -> Foo.$wf3 ww_s2jE (GHC.Prim.-# ww1_s2jJ 1#)
458       }
459 end Rec }
460
461 -- RHS size: {terms: 17, types: 9, coercions: 0, joins: 0/0}
462 f3 [InlPrag=NOUSERINLINE[0]] :: T3 -> Int
463 [GblId,
464  Arity=1,
465  Caf=NoCafRefs,
466  Str=<S(S(S)S(S)),1*U(1*U(U),1*U(U))>m,
467  Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True, WorkFree=True, Expandable=True,
468          Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
469          Tmpl= \ (w_s2jy [Occ=Once!] :: T3) ->
470                  case w_s2jy of { MkT3 ww1_s2jB [Occ=Once!] ww2_s2jG [Occ=Once!] ->
471                  case ww1_s2jB of { GHC.Types.I# ww4_s2jE [Occ=Once] ->
472                  case ww2_s2jG of { GHC.Types.I# ww6_s2jJ [Occ=Once] ->
473                  case Foo.$wf3 ww4_s2jE ww6_s2jJ of ww7_s2jO { __DEFAULT -> GHC.Types.I# ww7_s2jO }
474                  }
475                  }
476                  }}]
477 f3
478   = \ (w_s2jy :: T3) ->
479       case w_s2jy of { MkT3 ww1_s2jB ww2_s2jG ->
480       case ww1_s2jB of { GHC.Types.I# ww4_s2jE ->
481       case ww2_s2jG of { GHC.Types.I# ww6_s2jJ -> case Foo.$wf3 ww4_s2jE ww6_s2jJ of ww7_s2jO { __DEFAULT -> GHC.Types.I# ww7_s2jO } }
482       }
483       }
484
485
486