-
Simon Marlow authored
Fix a buglet in CorePrep: an expression such as case __coerce (\x -> e) :: T of { ... } would be left as is, but the lambda expression should really be abstracted as a let (causes a panic later in srtExpr; shown up by the dynamic001 test). There was a missing call to deLam in the case for Case expressions in corePrepExprFloat. In addition, I made a new version of deLam, deLamFloat, which can float any bindings generated. This helps to generate slightly cleaner code in the above case (the binding is floated out of the scrutinee). Also: GC unused imports while I'm here.
a4ac1436