[call routine to create specialization rules
John Meacham <john@repetae.net>**20060226114445] hunk ./Main.hs 38
+import qualified FrontEnd.Tc.Type as Type
hunk ./Main.hs 52
+import Util.Gen
hunk ./Main.hs 153
+procSpecs :: Monad m => (Map.Map Name [Type.Rule]) -> (TVr,E) -> m [(TVr,E)]
+procSpecs specMap (t,e) | Just n <- fromId (tvrIdent t), Just rs <- Map.lookup n specMap = do
+    return [(t,e)]
+procSpecs _specMap d = return [d]
+
hunk ./Main.hs 216
+    let specMap = Map.fromListWith (++) [ (n,[r]) | r@Type.RuleSpec { Type.ruleName = n } <- tiCheckedRules tiData]
+    nds <- mapM (procSpecs specMap) (programDs prog)
+    prog <- return $ programSetDs (concat nds) prog