!7 sclass WordType extends DynModule { S word; L wordTypes; JComponent visualize() { ret jSection("WORD TYPE", jCenteredMultiLineLiveValueLabel( dm_calculatedLiveValue(this, func -> S { word + " -> " + or2(joinWithComma(wordTypes), "?") }))); } void update { S s = dm_getInterestingString(); if (nempty(s) && setField(word := s)) { setField(wordTypes := ll("lalala " + word)); } } }