1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
==================== Tidy Core ====================
Result size of Tidy Core
= {terms: 42, types: 35, coercions: 0, joins: 0/0}
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
OpaqueNoRebox.$trModule4 :: GHC.Prim.Addr#
[GblId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 20 0}]
OpaqueNoRebox.$trModule4 = "main"#
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
OpaqueNoRebox.$trModule3 :: GHC.Types.TrName
[GblId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
OpaqueNoRebox.$trModule3
= GHC.Types.TrNameS OpaqueNoRebox.$trModule4
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
OpaqueNoRebox.$trModule2 :: GHC.Prim.Addr#
[GblId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 50 0}]
OpaqueNoRebox.$trModule2 = "OpaqueNoRebox"#
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
OpaqueNoRebox.$trModule1 :: GHC.Types.TrName
[GblId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
OpaqueNoRebox.$trModule1
= GHC.Types.TrNameS OpaqueNoRebox.$trModule2
-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
OpaqueNoRebox.$trModule :: GHC.Types.Module
[GblId,
Unf=Unf{Src=<vanilla>, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True, Guidance=IF_ARGS [] 10 10}]
OpaqueNoRebox.$trModule
= GHC.Types.Module
OpaqueNoRebox.$trModule3 OpaqueNoRebox.$trModule1
-- RHS size: {terms: 7, types: 8, coercions: 0, joins: 0/0}
f [InlPrag=OPAQUE] :: (Int, Int) -> Int
[GblId, Arity=1, Str=<1P(1L,1L)>, Unf=OtherCon []]
f = \ (ds :: (Int, Int)) ->
case ds of { (x, y) -> GHC.Num.$fNumInt_$c+ x y }
-- RHS size: {terms: 19, types: 14, coercions: 0, joins: 0/0}
g [InlPrag=[2]] :: (Int, Int) -> Int
[GblId,
Arity=1,
Str=<1P(SL,SL)>,
Cpr=1,
Unf=Unf{Src=StableSystem, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
Tmpl= \ (p [Occ=Once1!] :: (Int, Int)) ->
case p of wild { (x [Occ=Once1!], _ [Occ=Dead]) ->
case x of { GHC.Types.I# x1 [Occ=Once1] ->
case f (f wild, f wild) of { GHC.Types.I# y [Occ=Once1] ->
GHC.Types.I# (GHC.Prim.+# x1 y)
}
}
}}]
g = \ (p :: (Int, Int)) ->
case p of wild { (x, ds1) ->
case x of { GHC.Types.I# x1 ->
case f (f wild, f wild) of { GHC.Types.I# y ->
GHC.Types.I# (GHC.Prim.+# x1 y)
}
}
}
|