[make eta expansion use the name generation monad from the simplifier
John Meacham <john@repetae.net>**20060412092314] hunk ./E/Eta.hs 20
-import qualified Data.Map as Map
-import qualified Data.Set as Set
hunk ./E/Eta.hs 109
-etaExpandProgram prog = programMapDs f (etaAnnotateProgram prog) where
+etaExpandProgram prog = runNameMT (programMapDs f (etaAnnotateProgram prog)) where
hunk ./E/Eta.hs 153
-etaExpandDef :: MonadStats m => DataTable -> TVr -> E -> m (Maybe (TVr,E))
+etaExpandDef :: (NameMonad Id m,MonadStats m) => DataTable -> TVr -> E -> m (Maybe (TVr,E))
hunk ./E/Eta.hs 156
-    fvs = foldr insert (freeVars (b,map getType rs,tvrType t)) (map tvrIdent rs) `mappend` collectIds e
+    fvs = foldr insert (freeVars (b,map getType rs,(tvrType t,e))) (map tvrIdent rs) `mappend` collectIds e
hunk ./E/Eta.hs 162
-    nameSupply = [ n |  n <- [2,4 :: Int ..], n `notMember` fvs  ]
+    --nameSupply = [ n |  n <- [2,4 :: Int ..], n `notMember` fvs  ]
+    nameSupply = undefined
hunk ./E/Eta.hs 168
-    f (AFun _ a) (ELam tvr e) (EPi tvr' rt) ns = do
-        (ne,flag) <- f a e (subst tvr' (EVar tvr) rt) ns
+    f (AFun _ a) (ELam tvr e) (EPi tvr' rt) _ns = do
+        (ne,flag) <- f a e (subst tvr' (EVar tvr) rt) _ns
hunk ./E/Eta.hs 171
-    f (AFun _ a) e (EPi tt rt) (n:ns) = do
+    f (AFun _ a) e (EPi tt rt) _nns = do
hunk ./E/Eta.hs 175
+        n <- newName
hunk ./E/Eta.hs 178
-        (ne,_) <- f a eb (subst tt (EVar nv) rt) ns
+        (ne,_) <- f a eb (subst tt (EVar nv) rt) _nns
hunk ./E/Eta.hs 186
-etaExpandAp :: MonadStats m => DataTable -> TVr -> [E] -> m (Maybe E)
+etaExpandAp :: (NameMonad Id m,MonadStats m) => DataTable -> TVr -> [E] -> m (Maybe E)
hunk ./E/SSimplify.hs 67
-    let dsIn = programDs prog
+    let dsIn = programDs (runIdentity $ programMapBodies (return . subst (tVr (-1) Unknown) Unknown) prog)
hunk ./E/SSimplify.hs 452
-            sub'' = [ (t,Done (EVar t'))  | (t,n,t',_) <- s', n /= Once]
-        (ds',inb') <- w s'  (substAddList sub'' $ envInScope_u (fromList [ (tvrIdent t',NotKnown) | (_,n,t',_) <- s', n /= Once] `union`) inb) []
+            sub'' = fromList [ (t,susp e sub'') | (t,Once,_,e) <- s'] `union` fromList [ (t,Done (EVar t'))  | (t,n,t',_) <- s', n /= Once] `union` envSubst inb
+        (ds',inb') <- w s'  (cacheSubst (envSubst_s sub'' $ envInScope_u (fromList [ (tvrIdent t',NotKnown) | (_,n,t',_) <- s', n /= Once] `union`) inb)) []
hunk ./Main.hs 64
+import Util.NameMonad
hunk ./Main.hs 337
-            (v,lc) <- Stats.runStatIO stats (etaExpandDef' fullDataTable v lc)
+            (v,lc) <- Stats.runStatIO stats (runNameMT $ etaExpandDef' fullDataTable v lc)
hunk ./Main.hs 347
-            (v,lc) <- Stats.runStatIO stats (etaExpandDef' fullDataTable v lc)
+            (v,lc) <- Stats.runStatIO stats (runNameMT $ etaExpandDef' fullDataTable v lc)