svoid nlLogic_fillBattleSpace_withFailed2(NLLogicChecker_v2 c, final L battleSpace, bool debug) { VF2 onRuleFired = voidfunc(IfThen rule, NLLogicChecker_v2.Matching m) { battleSpace.add(new RuleWithParams(rule, m.matches)); }; VF4, Exp> onRuleFailed = voidfunc(IfThen rule, NLLogicChecker_v2.Matching m, L satisfiedConditions, Exp remaining) { //print("satisfied conditions: " + satisfiedConditions); battleSpace.add(new FailedRule(rule, m.matches, cloneListOrNull(nullIfEmpty(satisfiedConditions)), remaining)); }; print("Iterating over " + n2(c.rules, "rule")); applyNLLogicFacts_v4_iterate_withFailed2_verbose.set(debug); applyNLLogicFacts_v4_iterate_withFailed2(c, onRuleFired, onRuleFailed, c.rules); }