==================== Common sub-expression ====================
Result size of Common sub-expression
= {terms: 181, types: 89, coercions: 5, joins: 0/1}
-- RHS size: {terms: 5, types: 10, coercions: 0, joins: 0/0}
$cmyfmap_aG7
:: forall a b. (Domain [] a, Domain [] b) => (a -> b) -> [a] -> [b]
[LclId,
Arity=4,
Str=,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=2,unsat_ok=True,boring_ok=True)
Tmpl= \ (@a_aGa)
(@b_aGb)
_ [Occ=Dead]
_ [Occ=Dead]
(eta_B0 [Occ=Once1, OS=OneShot] :: a_aGa -> b_aGb)
(eta_B1 [Occ=Once1, OS=OneShot] :: [a_aGa]) ->
GHC.Base.build
@b_aGb
(\ (@b1_aHe)
(c_aHf [Occ=Once1, OS=OneShot] :: b_aGb -> b1_aHe -> b1_aHe)
(n_aHg [Occ=Once1, OS=OneShot] :: b1_aHe) ->
GHC.Base.foldr
@a_aGa
@b1_aHe
(GHC.Base.mapFB @b_aGb @b1_aHe @a_aGa c_aHf eta_B0)
n_aHg
eta_B1)}]
$cmyfmap_aG7
= \ (@a_aGa)
(@b_aGb)
_ [Occ=Dead, Dmd=A]
_ [Occ=Dead, Dmd=A, OS=OneShot] ->
map @a_aGa @b_aGb
-- RHS size: {terms: 1, types: 0, coercions: 3, joins: 0/0}
Foo.$fMyFunctor[] [InlPrag=INLINE (sat-args=0)] :: MyFunctor []
[LclIdX[DFunId(nt)],
Arity=4,
Str=,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=False,boring_ok=True)
Tmpl= $cmyfmap_aG7
`cast` (Sym (Foo.N:MyFunctor[0] <[]>_N)
:: (forall a b.
(Domain [] a, Domain [] b) =>
(a -> b) -> [a] -> [b])
~R# MyFunctor [])}]
Foo.$fMyFunctor[]
= $cmyfmap_aG7
`cast` (Sym (Foo.N:MyFunctor[0] <[]>_N)
:: (forall a b.
(Domain [] a, Domain [] b) =>
(a -> b) -> [a] -> [b])
~R# MyFunctor [])
-- RHS size: {terms: 2, types: 2, coercions: 0, joins: 0/0}
$sshared_sHD :: [Int] -> [Int]
[LclId,
Arity=1,
Str=,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=0,unsat_ok=True,boring_ok=False)
Tmpl= map @Int @Int GHC.Num.$fNumInt_$cnegate}]
$sshared_sHD = map @Int @Int GHC.Num.$fNumInt_$cnegate
-- RHS size: {terms: 115, types: 15, coercions: 2, joins: 0/1}
shared
:: forall (f :: * -> *).
(MyFunctor f, Domain f Int) =>
f Int -> f Int
[LclIdX,
Arity=2,
Str=,
RULES: "SPEC shared @[]"
forall ($dMyFunctor_sHz :: MyFunctor [])
(irred_sHA :: Domain [] Int).
shared @[] $dMyFunctor_sHz irred_sHA
= $sshared_sHD]
shared
= \ (@(f_ayh :: * -> *))
($dMyFunctor_ayi [Dmd=UC(1,C(S,C(S,U)))] :: MyFunctor f_ayh)
(irred_ayj :: Domain f_ayh Int) ->
let {
f_sHy :: f_ayh Int -> f_ayh Int
[LclId]
f_sHy
= ($dMyFunctor_ayi
`cast` (Foo.N:MyFunctor[0] _N
:: MyFunctor f_ayh
~R# (forall a b.
(Domain f_ayh a, Domain f_ayh b) =>
(a -> b) -> f_ayh a -> f_ayh b)))
@Int @Int irred_ayj irred_ayj GHC.Num.$fNumInt_$cnegate } in
\ (x_X4N :: f_ayh Int) ->
f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
(f_sHy
x_X4N))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
lvl_sHI :: Int
[LclId]
lvl_sHI = GHC.Types.I# 0#
-- RHS size: {terms: 6, types: 5, coercions: 0, joins: 0/0}
foo :: [Int] -> [Int]
[LclIdX,
Arity=1,
Str=,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
Tmpl= \ (xs_awV [Occ=Once1] :: [Int]) ->
GHC.Base.build
@Int
(\ (@b1_aHe)
(c_aHf [Occ=Once1, OS=OneShot] :: Int -> b1_aHe -> b1_aHe)
(n_aHg [Occ=Once1, OS=OneShot] :: b1_aHe) ->
GHC.Base.foldr
@Int
@b1_aHe
(GHC.Base.mapFB @Int @b1_aHe @Int c_aHf GHC.Num.$fNumInt_$cnegate)
n_aHg
(GHC.Types.: @Int lvl_sHI xs_awV))}]
foo
= \ (xs_awV :: [Int]) ->
map
@Int
@Int
GHC.Num.$fNumInt_$cnegate
(GHC.Types.: @Int lvl_sHI xs_awV)
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
lvl_sHJ :: Int
[LclId]
lvl_sHJ = lvl_sHI
-- RHS size: {terms: 6, types: 5, coercions: 0, joins: 0/0}
bar :: [Int] -> [Int]
[LclIdX,
Arity=1,
Str=<1U>,
Cpr=m2,
Unf=Unf{Src=InlineStable, TopLvl=True, Value=True, ConLike=True,
WorkFree=True, Expandable=True,
Guidance=ALWAYS_IF(arity=1,unsat_ok=True,boring_ok=False)
Tmpl= \ (xs_awW [Occ=Once1] :: [Int]) ->
GHC.Types.:
@Int
lvl_sHI
(GHC.Base.build
@Int
(\ (@b1_aHe)
(c_aHf [Occ=Once1, OS=OneShot] :: Int -> b1_aHe -> b1_aHe)
(n_aHg [Occ=Once1, OS=OneShot] :: b1_aHe) ->
GHC.Base.foldr
@Int
@b1_aHe
(GHC.Base.mapFB @Int @b1_aHe @Int c_aHf GHC.Num.$fNumInt_$cnegate)
n_aHg
xs_awW))}]
bar
= \ (xs_awW :: [Int]) ->
GHC.Types.:
@Int lvl_sHI (map @Int @Int GHC.Num.$fNumInt_$cnegate xs_awW)
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$trModule_sHr :: GHC.Prim.Addr#
[LclId]
$trModule_sHr = "main"#
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
$trModule_sHs :: GHC.Types.TrName
[LclId]
$trModule_sHs = GHC.Types.TrNameS $trModule_sHr
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$trModule_sHt :: GHC.Prim.Addr#
[LclId]
$trModule_sHt = "Foo"#
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
$trModule_sHu :: GHC.Types.TrName
[LclId]
$trModule_sHu = GHC.Types.TrNameS $trModule_sHt
-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
Foo.$trModule :: GHC.Types.Module
[LclIdX]
Foo.$trModule = GHC.Types.Module $trModule_sHs $trModule_sHu
-- RHS size: {terms: 3, types: 1, coercions: 0, joins: 0/0}
$krep_aGF [InlPrag=[~]] :: GHC.Types.KindRep
[LclId]
$krep_aGF
= GHC.Types.KindRepTyConApp
GHC.Types.$tcConstraint (GHC.Types.[] @GHC.Types.KindRep)
-- RHS size: {terms: 3, types: 0, coercions: 0, joins: 0/0}
$krep_aGE [InlPrag=[~]] :: GHC.Types.KindRep
[LclId]
$krep_aGE = GHC.Types.KindRepFun GHC.Types.krep$*Arr* $krep_aGF
-- RHS size: {terms: 1, types: 0, coercions: 0, joins: 0/0}
$tcMyFunctor_sHv :: GHC.Prim.Addr#
[LclId]
$tcMyFunctor_sHv = "MyFunctor"#
-- RHS size: {terms: 2, types: 0, coercions: 0, joins: 0/0}
$tcMyFunctor_sHw :: GHC.Types.TrName
[LclId]
$tcMyFunctor_sHw = GHC.Types.TrNameS $tcMyFunctor_sHv
-- RHS size: {terms: 7, types: 0, coercions: 0, joins: 0/0}
Foo.$tcMyFunctor :: GHC.Types.TyCon
[LclIdX]
Foo.$tcMyFunctor
= GHC.Types.TyCon
12837160846121910345##
787075802864859973##
Foo.$trModule
$tcMyFunctor_sHw
0#
$krep_aGE