static void nlLogic_iterate_withOnFail(NLLogicChecker_v2 c, Exp e, final NLLogicChecker_v2.Matching m, final Runnable onMatch, final VF1 onFail) { if (e cast And) { final Exp b = e.b; c.iterate_single(e.a, m, r { nlLogic_iterate_x(b, m, onMatch, onFail) }); ret; } final new Flag anyResults; c.iterate_single(e, m, r { anyResults.raise(); callF(onMatch); }); if (!anyResults.isUp()) callF(onFail, e); }