-
Simon Peyton Jones authored
------------------------ Fix the demand analyser ------------------------ A spiffy new domain for demands, and definitions for lub/both which are actually monotonic. Quite a bit of related jiggling around. One of the original motivations was to do with functions like: sum n [] = n sum n (x:xs) = sum (n+x) xs Even though n is returned boxed from the first case, we don't want to get strictness S(L)V -> T because that means we pass the box for n, and that is TERRIBLE. So the new version errs on the side of unboxing, more like the forwards analyser, and only passes the box if it is *definitely* needed, rather than if it *may* be needed.
d3f61314