(https://docs.google.com/spreadsheets/d/1o05HVgAnsSjuLNFyDZ78DJPIirw664i7i48g6aHan5w/edit?usp=sharing)
https://gitlab.haskell.org/ghc/ghc/-/issues/23848
let x = case y of { p -> rhs } in ...
===> if y is marked demanded (at its binding site)
case y of p -> let x = rhs in ...
Do not do this in Core ... that case was discarded (if it existed) because x is demanded. but STG rewriter introduces it. To ensure SBox has an eval'd arg.
Need to check that idDemandInfo is preserved by CoreTidy and CoreToSTG. In ptic CoreTidy discards a bunch of IdInfo.