[clean up uses of intToAtom, create better error messages in various places
John Meacham <john@repetae.net>**20060816033446] hunk ./E/E.hs 145
-    show TVr { tvrIdent = (x), tvrType =  e} | Just n <- intToAtom x  = "(v" ++ show (fromAtom n::Name) ++ "::" ++ show e ++ ")"
+    show TVr { tvrIdent = (x), tvrType =  e} | Just n <- fromId x  = "(v" ++ show n ++ "::" ++ show e ++ ")"
hunk ./E/E.hs 271
-tvrName (TVr {tvrIdent =  n }) | Just a <- intToAtom n = return $ fromAtom a
+tvrName (TVr {tvrIdent =  n }) | Just a <- fromId n = return a
hunk ./E/LetFloat.hs 175
-        f n =  maybe (toAtom ('x':show n)) (toAtom . show . (fromAtom :: Atom -> Name)) (intToAtom n)
+        f n =  maybe (toAtom ('x':show n)) (toAtom . show) (fromId n)
hunk ./E/Program.hs 7
-import qualified Data.Set as Set
hunk ./E/Program.hs 11
-import E.FreeVars
hunk ./E/Program.hs 12
+import Name.Id
hunk ./E/Program.hs 15
-import Util.Graph
-import Name.Id
hunk ./E/Program.hs 69
-programEsMap prog = Map.fromList [ (runIdentity $ fromId (tvrIdent v),d) | d@(v,_) <- programDs prog ]
+programEsMap prog = runIdentity $ do
+    let f d@(v,_) = case fromId (tvrIdent v) of
+            Just n -> return (n,d)
+            Nothing -> fail $ "Program.programEsMap: top level var with temporary name " ++ show v
+    xs <- mapM f (programDs prog)
+    return (Map.fromList xs)
hunk ./E/Show.hs 37
-showId i | Just x <- intToAtom i  = (text $ show  $ (fromAtom x :: Name))
+showId i | Just x <- fromId i  = (text $ show x)
hunk ./Main.hs 191
-        ds' = programDs $ etaAnnotateProgram (programSetDs ds program)
+        prog = etaAnnotateProgram (programSetDs ds program)
hunk ./Main.hs 194
-    return $ accumho' `mappend` ho { hoUsedIds = uids, hoEs = Map.fromList [ (runIdentity $ fromId (tvrIdent v),d) |  d@(v,_) <- ds' ] }
+    return $ accumho' `mappend` ho { hoUsedIds = uids, hoEs = programEsMap prog }
hunk ./Name/Name.hs 170
-fromId i = liftM Name (intToAtom i)
+fromId i = case intToAtom i of
+    Just a -> return $ Name a
+    Nothing -> fail $ "Name.fromId: not a name " ++ show i
hunk ./Name/Name.hs 183
+