最後にNOINLINEが付いてて-Oも指定したら
==================== Grand total simplifier statistics ====================
Total ticks: 28
8 PreInlineUnconditionally
3 w
3 w
1 x
1 y
6 PostInlineUnconditionally
2 ww
1 x'
1 y'
1 ww
1 ww
2 UnfoldingDone 2 timesInt
1 LetFloatFromLet 1
1 EtaReduction 1 ww
4 BetaReduction
2 w
2 w
6 KnownBranch
2 ww
1 wild
1 wild
1 ww
1 ww
9 SimplifierDone 9
:
:
==================== CorePrep ====================
Result size of CorePrep
= {terms: 53, types: 27, coercions: 0, joins: 0/0}
-- RHS size: {terms: 5, types: 2, coercions: 0, joins: 0/0}
$wtimesInt :: Int# -> Int# -> Int#
$wtimesInt = \ (eta :: Int#) (eta :: Int#) -> *# eta eta
-- RHS size: {terms: 15, types: 7, coercions: 0, joins: 0/0}
timesInt :: Int -> Int -> Int
timesInt
= \ (w :: Int) (w1 :: Int) ->
case w of { I# ww1 ->
case w1 of { I# ww3 ->
case $wtimesInt ww1 ww3 of ww4 { __DEFAULT -> I# ww4 }
}
}
-- RHS size: {terms: 16, types: 5, coercions: 0, joins: 0/0}
cube :: Int -> Int
cube
= \ (x :: Int) ->
case x of { I# ww1 ->
case $wtimesInt ww1 ww1 of ww2 { __DEFAULT ->
case $wtimesInt ww2 ww1 of ww3 { __DEFAULT -> I# ww3 }
}
}
これworker/wrapper変換かかってませんか?