Draft: DmdAnal: Anticipate ANF in `dmdAnalStar` (#21257)
The observable change: Demand analysis now gives x
in
let x = ... in let y = x |> co in y `seq` fst y `seq` ()
the same demand as
y
, as criticised by #21257.
Otherwise this is mostly a refactoring of dmdAnalStar
with a lot of documentation
for why it is written as it is. See Note [Anticipating ANF in demand analysis]
for the overview.
Fixes #21257.
Edited by Andreas Klebinger