svoid pb_enableAutoPatterns(PhilosophyBot1 bot, O... _) { optPar bool debug; Set patterns = ciSet(); IVF1 onFact = fact -> bot.addFacts(dm_topDownParseToGroupings(fact, patterns)); IVF1 onRule = rule -> { LS l = stringsOnly(philosophyBot_allPartsOfLHS(rule)); LS l2 = listMinusSet(l, patterns); if (nempty(l2)) { print("Have new patterns: " + l2); patterns.addAll(l2); bot.updateCodeOnFact(onFact); } }; bot.addCodeOnFact(onFact); bot.addCodeOnRule(onRule); }