noFloatIntoRhs :: AnnExpr' Var (UniqFM Var) -> Type -> Bool
-- ^ True if it's a bad idea to float bindings into this RHS
-- Preconditio:  rhs :: rhs_ty
noFloatIntoRhs rhs rhs_ty
  =  isUnLiftedType rhs_ty   -- See Note [Do not destroy the let/app invariant]
  || noFloatIntoExpr rhs
noFloatIntoRhs :: AnnExpr' Var (UniqFM Var) -> Type -> Bool
noFloatIntoRhs rhs rhs_ty
  =  isUnLiftedType rhs_ty   -- See Note [Do not destroy the let/app invariant]
  || noFloatIntoExpr rhs
noFloatIntoRhs rhs rhs_ty
  =  isUnLiftedType rhs_ty   -- See Note [Do not destroy the let/app invariant]
  || noFloatIntoExpr rhs