!7 static SimpleLiveValue output = new(S); static SimpleLiveValue input = new(S); static ReliableSingleThread rst = new(f parse); static JComponent visualize() { ret jLiveValueTextArea(output); } p { input.onChange(rTrigger(rst)); } svoid update { input.set((S) callOpt(creator(), 'getInterestingString)); } svoid parse { output.set("Parsing..."); try { O o = jsonDecode(input!); output.set("Text relaxedly parses as JSON (" + shortClassName(o) + ")"); } catch e { output.set("Parse error. " + exceptionToStringShort(e)); } }