
18 Aug
2010
18 Aug
'10
10:54 a.m.
On Wed, Aug 18, 2010 at 4:38 PM, Lennart Augustsson < lennart.augustsson@gmail.com> wrote:
You don't know that f is strict in its first argument so you cannot deduce that go is strict in z in the first case.
I'm not sure I understand. f :: Int -> Int -> Int -> Int f = \x y z -> x + y + z in this particular case so it's strict in all its parameters since + is strict (for Ints). f is inlined into go so it should be possible to deduce that go is indeed strict. As I mentioned to Ian you get the same result if you inline f manually. Cheers, Johan