sclass NLLogicChecker_v3 extends NLLogicChecker_v2 { void iterate(Exp e, Matching m, Runnable onMatch) { if (e cast Func) { if (eq(e.name, "fact")) { S pat = nlLogic_text(e.arg); for (S fact : facts) { LinkedHashMap oldMatches = (LinkedHashMap) cloneMap(m.matches); try { if (matcher.match(pat, fact, m.matches)) callF(onMatch); } finally { m.matches = oldMatches; } } } } } }