[attach rules to method names too even before they are defined
John Meacham <john@repetae.net>**20050930040801] hunk ./Main.hs 112
+lamann _ = return mempty
hunk ./Main.hs 122
+annotateMethods ch rs ps = (Map.fromList [ (tvrIdent t, Just (EVar t)) | t <- ts ]) where
+    ts = [ let Identity x = idann rs ps (tvrIdent t) in t { tvrInfo = x `mappend` tvrInfo t } | t <-methodNames ch ] 
+
hunk ./Main.hs 128
-    let lamann _ = return mempty
-    let Identity (ELetRec ds (ESort 0)) = annotate mempty (idann (hoRules ho) (hoProps ho) ) letann lamann (ELetRec (Map.elems $ hoEs ho) eStar)
+    let imap = annotateMethods (hoClassHierarchy ho) (hoRules ho) (hoProps ho)
+    let Identity (ELetRec ds (ESort 0)) = annotate imap (idann (hoRules ho) (hoProps ho) ) letann lamann (ELetRec (Map.elems $ hoEs ho) eStar)
hunk ./Main.hs 143
-    let initMap = Map.fromList [ (tvrIdent t, Just (EVar t)) | (t,_) <- (Map.elems (hoEs ho))]
hunk ./Main.hs 194
+    let imap = annotateMethods (hoClassHierarchy ho `mappend` hoClassHierarchy ho') allRules (hoProps ho `mappend` hoProps ho')
+    let initMap = Map.fromList [ (tvrIdent t, Just (EVar t)) | (t,_) <- (Map.elems (hoEs ho))] `mappend` imap
hunk ./Main.hs 232
+
hunk ./Main.hs 254
+
+    --let imap = annotateMethods (hoClassHierarchy ho) (hoRules ho) (hoProps ho)
+    lc <- return $ runIdentity $ annotate mempty (idann rules (hoProps ho) ) letann lamann lc