mkPADictType, mkPArrayType,
paDictArgType, paDictOfType,
lookupPArrayFamInst,
- hoistExpr
+ hoistExpr, takeHoisted
) where
#include "HsVersions.h"
hoistExpr fs expr
= do
var <- newLocalVar fs (exprType expr)
- updLEnv $ \env ->
- env { local_bindings = (var, expr) : local_bindings env }
+ updGEnv $ \env ->
+ env { global_bindings = (var, expr) : global_bindings env }
return var
+takeHoisted :: VM [(Var, CoreExpr)]
+takeHoisted
+ = do
+ env <- readGEnv id
+ setGEnv $ env { global_bindings = [] }
+ return $ global_bindings env
+