Unexpected lack of optimisation

ajb at spamcop.net ajb at spamcop.net
Tue Apr 29 20:33:57 EDT 2008


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


More information about the Glasgow-haskell-users mailing list