!7 sclass EnglishParser > DynPrintLogWithInput { transient Pair> lastResults; start { dm_useLocallyCopiedMechLists(); // In case lists change doEvery(5000, r { update(inputChooser.input()) }); } void update(S s) { temp enter(); L tokInput = javaTokWithAngleBracketsC(s); L results = ai_parser1_multipleCategories(s, mL("English parser top categories")); S rendered = ai_renderParseResults(results); bool shouldPrint = lastResults == null || neq(rendered, ai_renderParseResults(lastResults.b)); lastResults = pair(s, results); if (shouldPrint) print("\n> " + s + "\n" + sfu(tokInput) + "\n" + rendered); } }