Fix let-floating out of Rec blocks
This fixes Trac #5341 and #5342. The question is about what to do when floating out of the RHS of a Rec-bound function, when there's a FloatCase involved. For FloatLets they can join the Rec block, but FloatCases can't. But we don't want to mess with the arity (that was the bug). So in this (rather exotic case) we push the FloatCase back inside any lambdas. See Note [Floating out of Rec rhss]. It's a slightly ugly fix, but I can't think of anything better, and I don't think it has any practical impact.
Showing with 46 additions and 3 deletions