!7 sclass MatchInput > DynPrintLogWithInput { transient Pair> lastResults; start { dm_useLocallyCopiedMechLists(); // In case lists change doEvery(5000, r { update(inputChooser.input() }); } void update(S s) { L tokInput = printStruct(javaTokWithAngleBracketsC(s)); L results = ai_parser1_multipleCategories(s, "", "", ""); 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" + rendered); } }