Add closedV
authorRoman Leshchinskiy <rl@cse.unsw.edu.au>
Fri, 13 Jul 2007 07:28:43 +0000 (07:28 +0000)
committerRoman Leshchinskiy <rl@cse.unsw.edu.au>
Fri, 13 Jul 2007 07:28:43 +0000 (07:28 +0000)
compiler/vectorise/VectMonad.hs

index 10aa2b6..a658253 100644 (file)
@@ -1,7 +1,7 @@
 module VectMonad (
   VM,
 
-  noV, tryV, maybeV, orElseV, localV, initV,
+  noV, tryV, maybeV, orElseV, localV, closedV, initV,
   newLocalVar, newTyVar,
   
   Builtins(..), paDictTyCon,
@@ -192,6 +192,14 @@ localV p = do
              setLEnv env
              return x
 
+closedV :: VM a -> VM a
+closedV p = do
+              env <- readLEnv id
+              setLEnv emptyLocalEnv
+              x <- p
+              setLEnv env
+              return x
+
 liftDs :: DsM a -> VM a
 liftDs p = VM $ \bi genv lenv -> do { x <- p; return (Yes genv lenv x) }