``Long-distance'' floating of bindings towards the top level.
\begin{code}
+{-# OPTIONS -w #-}
+-- The above warning supression flag is a temporary kludge.
+-- While working on this module you are encouraged to remove it and fix
+-- any warnings in the module. See
+-- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
+-- for details
+
module FloatOut ( floatOutwards ) where
#include "HsVersions.h"
-- more efficient to test once here than to avoid putting
-- them into floating_defns (which would mean testing for
-- inlineCtxt at every let)
- (fs, [], Note InlineMe (install floating_defns expr')) } -- See notes in SetLevels
+ (fs, [], Note InlineMe (install floating_defns expr')) }
+ -- See Note [FloatOut inside INLINE] in SetLevels
+ -- I'm guessing that floating_dens should be empty
floatExpr lvl (Note note expr) -- Other than SCCs
= case (floatExpr lvl expr) of { (fs, floating_defns, expr') ->