[make programSetDs propagate changes to entry points. have typeanalysis use annotateProgram
John Meacham <john@repetae.net>**20060223030603] hunk ./E/Program.hs 44
-programSetDs ds prog = prog { progCombinators = [ (t,as,body) | (t,e) <- ds, let (body,as) = fromLam e ] }
+programSetDs ds prog = prog {
+    progMainEntry = f (progMainEntry prog),
+    progEntryPoints = map f (progEntryPoints prog),
+    progCombinators = [ (t,as,body) | (t,e) <- ds, let (body,as) = fromLam e ]
+    } where
+    f tvr | Just n <- Map.lookup (tvrIdent tvr) mp = n
+          | otherwise = tvr
+    mp = Map.fromList [ (tvrIdent t,t) | (t,_) <- ds ]
hunk ./E/TypeAnalysis.hs 47
-    ds <- annotateDs mempty lambind (\_ -> return) (\_ -> return) (programDs prog)
+    prog <- annotateProgram mempty lambind (\_ -> return) (\_ -> return) prog
+    let ds = programDs prog
hunk ./E/TypeAnalysis.hs 52
-    ds <- annotateDs mempty (\_ -> return) (\_ -> return) lamread ds
-    ds <- annotateDs mempty lamdel (\_ -> return) (\_ -> return) ds
-    return $ programSetDs ds prog
+    prog <- annotateProgram mempty (\_ -> return) (\_ -> return) lamread prog
+    prog <- annotateProgram mempty lamdel (\_ -> return) (\_ -> return) prog
+    return prog