- catchSTM# appears to have the same strictness behavior as
catch#, so we conservatively give it a lazy demand signature.
catchRetry# appears to be much stricter in its first argument,
so we give it a strict demand signature.
- Remove all the defective machinery for catch arguments from
Demand.hs. If we want, we can try to write something a bit
clever some day that's actually correct. I think its structure
will likely be a good bit different. To a probably-close-enough
catch# m f s = case ORACLE m s of Succeeds -> m s Fails ex -> f ex s
so we could use case-like demand analysis for catch# and
catchSTM. It remains an open question whether this would
actually reveal enough strictness to be worth the trouble.
Fixes Trac #13357