static bool nlLogic_matchAnyFact(NLLogicChecker_v2 c, S pat, NLLogicChecker_v2.Matching m) { SS m2 = null; new L choices; for (S fact : c.facts) { if (m2 == null) m2 = cloneList(m.matches); bool result = c.matcher.match(pat, fact, m2); if (m.verbose) print("matched " + quote(pat) + " with " + quote(fact) + " & " + sfu(m.matches) + " => " + result); if (result) { choices.add(m2); m2 = null; } } if (empty(choices)) false; m.matches = random(choices); true; }