static void applyRule_all(S ruleID) { // process the rule Lisp rule = getLispTruth(ruleID); if (rule == null) { print("Rule not found: " + ruleID); ret; } //print("Applying rule " + ruleID); if (applyRule_all_debug) print_setPrefixForThread(ruleID + "> "); try { applyRule_all(rule, ruleID); } finally { if (applyRule_all_debug) print_setPrefixForThread(""); } } svoid applyRule_all(Lisp rule, S ruleID) { for (Map matches : matchConditions_all(dropLast(rule.args))) emit(lispReplaceVars(last(rule.args), matches), ruleID); }