!7 p-exp { L rules = map nlLogic_parseRule(splitAtEmptyLines(mL_raw("Fact-to-fact rules"))); final new NLLogicChecker_v3 c; c.matcher = new NLStringMatcher_dollarVars_underscores; c.facts = mL("Random facts"); final new NLLogicChecker_v2.Matching m; final new LinkedHashSet outFacts; for (final IfThen rule : rules) c.iterate(rule.in, m, r { print("Got matches: " + sfu(m.matches)); Exp out = c.apply(rule.out, m); if (out cast Func) if (eq(out.name, "fact")) outFacts.add(nlLogic_text(out.arg)); }); pnl(outFacts); appendToMechList("Derived facts", outFacts); }