[improve lint program checking
John Meacham <john@repetae.net>**20060816062148] hunk ./Main.hs 10
+import qualified List(group)
hunk ./Main.hs 196
+
+    --lintCheckProgram (putStrLn "processInitialHo") prog
hunk ./Main.hs 1034
-    let f (tvr@TVr { tvrIdent = n },e) | even n = do
-            onerr
-            putErrLn $ ">>> non-unique name at top level: " ++ pprint tvr
-            printProgram prog
-            putErrLn $ ">>> non-unique name at top level: " ++ pprint tvr
-            maybeDie
-        f (tvr,e) = lintCheckE onerr (progDataTable prog) tvr e
hunk ./Main.hs 1036
-        putErrLn ">>> Repeated top level decls"
+        let repeats = [ x | x@(_:_:_) <- List.group $ sort (map fst (programDs prog))]
+        putErrLn $ ">>> Repeated top level decls: " ++ pprint repeats
hunk ./Main.hs 1039
-        putErrLn ">>> program has repeated toplevel definitions"
+        putErrLn $ ">>> program has repeated toplevel definitions" ++ pprint repeats
hunk ./Main.hs 1041
+    let f (tvr@TVr { tvrIdent = n },e) | even n = do
+            onerr
+            putErrLn $ ">>> non-unique name at top level: " ++ pprint tvr
+            printProgram prog
+            putErrLn $ ">>> non-unique name at top level: " ++ pprint tvr
+            maybeDie
+        f (tvr,e) = lintCheckE onerr (progDataTable prog) tvr e