!7 sclass Inference { Map definitions = dm_getDefinitionsMap(); new LinkedHashSet out; void process(S input) { for (S word : words(input)) { LS defs = definitions.get(word); if (cic(defs, "something humans often do")) out.add("Interpretation: You want to " + word); } } } module Think > DynTextArea { transient S input; start { dm_onTopInputChangeAndNow(voidfunc(S s) { input = s; updateMe() }); doEvery(10.0, r updateMe); } void update { new Inference inference; inference.process(input); setText(">> " + input + "\n\n" + lines(inference.out)); } }