MERGE 4.07
* When float outwards (full laziness) remember to
switch off the demand flag. Else we wrongly
can transform
\x -> let y __D = (...) in y+x
into
let y __D = (...)
in \x -> y+x
In the latter, y is not necessarily demanded;
it depends whether the function is called. We
should switch off the demand flag.
The fix is right at the bottom in SetLevels.subst_id_info