[collect used ids while annotating and fixing up initial ho, rather than in a separate pass
John Meacham <john@repetae.net>**20060409094225] hunk ./Main.hs 171
+collectIdAnn r p id nfo = do
+    tell $ singleton id
+    idann r p id nfo
hunk ./Main.hs 177
-    let Identity ds = annotateDs mempty (idann (hoRules ho) (hoProps ho) ) letann lamann (Map.elems $ hoEs ho)
+    let (ds,uids) = runWriter $ annotateDs mempty (collectIdAnn (hoRules ho) (hoProps ho) ) letann lamann (Map.elems $ hoEs ho)
hunk ./Main.hs 179
-    return ho { hoUsedIds = collectIds (ELetRec ds' Unknown), hoEs = Map.fromList [ (runIdentity $ fromId (tvrIdent v),d) |  d@(v,_) <- ds' ] }
-
+    return ho { hoUsedIds = uids, hoEs = Map.fromList [ (runIdentity $ fromId (tvrIdent v),d) |  d@(v,_) <- ds' ] }