• simonpj@microsoft.com's avatar
    Fix Trac #3403: interaction of CPR and pattern-match failure · 8a25c54e
    simonpj@microsoft.com authored
    A fine bug report (#3403) demonstrated that we were losing the tail
    call property when a complicated pattern match was involved.  After
    a bit of investigation I discovered that the culprit was the failure
    join-point introduced by the pattern matcher.  It was a zero-argument
    thunk, which is not very CPR-friendly, and that interacted badly with
    CPR worker/wrapper.
    It's easy to fix, the same way that we fix other join points, by supplying
    a dummy argument (that is not really passed at runtime.
DsUtils.lhs 26.2 KB