[add 'seasoning' to programs to keep track of indirect dependencies generated via RULES
John Meacham <john@repetae.net>**20080229233423] hunk ./E/Demand.hs 424
-    nds <- solveDs (progDataTable prog) (programDs prog)
-    return $ programSetDs nds prog
+    dsOut <- solveDs (progDataTable prog) (programDs prog)
+    return $ progCombinators_s [ combRules_s rs $ bindComb (t,e) | (t,e) <- dsOut, rs <- [ combRules c | c <- progCombinators prog, combHead c == t]] prog
hunk ./E/Inline.hs 126
-    g = newGraph (progCombinators prog) combIdent (toList . (freeVars :: Comb -> IdSet))
+    g = newGraph (progCombinators prog) combIdent ( toList . (union $ progSeasoning prog) . (freeVars :: Comb -> IdSet))
hunk ./E/Program.hs 42
+    progSeasoning :: IdSet,       -- ^ these ids are depended on by external names via RULES
hunk ./E/Program.hs 59
+    progSeasoning = mempty,
hunk ./Main.hs 273
+    let seasoning = freeVars [ rs | (k,rs) <- massocs rules', k `notMember` defined ] `intersection` defined
+        defined = fromList $ map (tvrIdent . fst) ds :: IdSet
hunk ./Main.hs 277
+    prog <- return prog { progSeasoning = seasoning }