Merge remote-tracking branch 'origin/master' into HEAD
Add documentation to plusUFM_CD
Do not export DmdResult constructors in Demand.lhs
Make types of bothDmdType more precise

by only passing the demand on the free variables, and whether the
argument (resp. scrunitee) may or will diverge.

Also make different postProcess code paths for function arguments
(which are post-processed just to be both'ed) and unsaturated functions
(which are post-processed for other reasons.)

Also rename a few functions related to unsaturated function calls
(postProcessDmdType to postProcessUnsat, useType to reuseType,...)

Also add a note [Demands from unsaturated function calls]
that hopefully comprehensively and comprehensibly explains what is going
on here.
in Demand.lhs, remember what is a sum type

because we want to zap CPR information for sum types not only on the
outermost level, but also nested.
See Note [CPR for sum types]
This comes up in sublist in Listplikefns in nofib’s boyer2.
Temporarily disable nested CPR inside sum types
Allow the CPR w/w to take unboxed tuples apart