Improvements to demand analysis
This patch collects a few improvements triggered by Trac Trac #15696,
and fixing Trac Trac #16029
- Stop making toCleanDmd behave specially for unlifted types. This special case was the cause of stupid behaviour in Trac Trac #16029. And to my joy I discovered the let/app invariant rendered it unnecessary. (Maybe the special case pre-dated the let/app invariant.)
Result: less special-case handling in the compiler, and better perf for the compiled code.
- In WwLib.mkWWstr_one, treat seqDmd like U(AAA). It was not being so treated before, which again led to stupid code.
- Update and improve Notes
There are .stderr test wibbles because we get slightly different
strictness signatures for an argumment of unlifted type:
<L,U> rather than <S,U> for Int# <S,U> rather than <S(S),U(U)> for Int