[move rule creation to E.FromHs, mark them as catalysts when appropriate
John Meacham <john@repetae.net>**20061122044200] hunk ./E/FromHs.hs 211
+{-# NOINLINE createInstanceRules #-}
hunk ./E/FromHs.hs 273
-convertRules :: TiData -> ClassHierarchy -> Map.Map Name Type -> DataTable -> [HsDecl] -> IO [(String,[TVr],E,E)]
-convertRules tiData classHierarchy assumps dataTable hsDecls = concatMapM g hsDecls where
+{-# NOINLINE convertRules #-}
+convertRules :: Module -> TiData -> ClassHierarchy -> Map.Map Name Type -> DataTable -> [HsDecl] -> IO Rules
+convertRules mod tiData classHierarchy assumps dataTable hsDecls = ans where
+    ans = do
+        rawRules <- concatMapM g hsDecls
+        return $ fromRules [ makeRule n (mod,i) (if catalyst then RuleCatalyst else RuleUser) vs head args e2 | (catalyst,n,vs,e1,e2) <- rawRules, let (EVar head,args) = fromAp e1 | i <- [1..] ]
hunk ./E/FromHs.hs 301
-        return (hsRuleString pr,( snds (cs' ++ ts) ),eval $ smt $ sma e1,e2)
+        return (hsRuleIsMeta pr,hsRuleString pr,( snds (cs' ++ ts) ),eval $ smt $ sma e1,e2)
hunk ./E/FromHs.hs 346
+{-# NOINLINE convertDecls #-}
hunk ./Main.hs 283
-    rawRules <- convertRules tiData (hoClassHierarchy ho') allAssumps fullDataTable decls
-    let nrules = fromRules [ makeRule n (progModule prog,i) RuleUser vs head args e2 | (n,vs,e1,e2) <- rawRules, let (EVar head,args) = fromAp e1 | i <- [1..] ]
+    nrules <- convertRules (progModule prog) tiData (hoClassHierarchy ho') allAssumps fullDataTable decls
+    --let nrules = fromRules [ makeRule n (progModule prog,i) RuleUser vs head args e2 | (n,vs,e1,e2) <- rawRules, let (EVar head,args) = fromAp e1 | i <- [1..] ]