Useful optimisation for set-cost-centre
If you compile, for example, drvrun014 with -prof -auto-all, you'll see stuff like
(scc "c" (dataToTag#)) y
This generates bad code, because we end up eta-expaning dataToTag, which allocates an extra function closure.
We think that in general
(scc "c" e) y = scc "c" (e y)
to within a small constant factor. So maybe the simplifier, or CorePrep
, or both, should do this transformation.