
30 Apr
2008
30 Apr
'08
12:33 a.m.
G'day all. This is just a suggestion, but perhaps the problem isn't that retry isn't inlined, it's that it isn't specialised. IIRC, GHC does now specialise functions under what I assume would be these conditions: - There is a top-level case expression (possibly under some lets) which tests a function argument. - That function argument has a known constructor at a call site. The situation in Neil's code is almost identical, except that the top-level case expression is on a value passed by environment, not by function argument. Cheers, Andrew Bromage