[remove newtypes in more places
John Meacham <john@repetae.net>**20061011041107] hunk ./Main.hs 169
+denewtypeProgram prog = transformProgram transDenewtype prog
+transDenewtype = transformParms {
+        transformCategory = "DeNewtype",
+        transformIterate = DontIterate,
+        transformDumpProgress = corePass,
+        transformOperation =  return . denewtype
+        } where
+    denewtype prog | null $ progCombinators prog = prog
+    denewtype prog = prog' where
+        ELetRec ds _ = removeNewtypes (progDataTable prog) (programE prog)
+        Identity prog' = annotateProgram mempty (\_ nfo -> return nfo)  (\_ nfo -> return nfo) (\_ nfo -> return nfo) (programSetDs ds prog)
hunk ./Main.hs 302
-    let ELetRec ds _ = removeNewtypes fullDataTable (programE prog)
-    prog <- return $ programSetDs ds prog
+    prog <- denewtypeProgram prog
hunk ./Main.hs 645
-    let ELetRec ds _ = removeNewtypes dataTable (programE prog)
-    prog <- return $ programSetDs ds prog
+    prog <- denewtypeProgram prog
hunk ./Main.hs 665
+    prog <- denewtypeProgram prog
hunk ./Main.hs 699
-    let ELetRec ds _ = removeNewtypes dataTable (programE prog)
-    prog <- return $ programSetDs ds prog
-    prog <- return $ runIdentity $ annotateProgram mempty (\_ nfo -> return nfo) (\_ nfo -> return nfo)  (\_ nfo -> return nfo) prog
+    prog <- denewtypeProgram prog