!7 p-exp { IfThen rule = nlLogic_parseRuleWithMacros([[ i(can you $walk_on_water?) && fact(nobody can $walk_on_water) => say(no. nobody can $walk_on_water) ]]); final new NLLogicChecker_v3 c; c.input = "can you look around corners?"; final new NLLogicChecker_v2.Matching m; m.verbose = true; final L l = nlLogic_unrollAnd(rule.in); if (l == null) ret with print("No conditions"); print("Conditions: " + l); // Does this work? c.iterate(first(l), m, r { print("Got match: " + sfu(m.matches)); print("Remaining: " + dropFirst(l)); }); // WORKS print("Method 2"); if (c.checkExpression(first(l), m)) { print("Got match: " + sfu(m.matches)); print("Remaining: " + c.apply(nlLogic_and(dropFirst(l)), m)); } }