!7 cmodule PhilosophyBotTextArea > DynTextArea { S output; transient PhilosophyBot1 bot; visual jvsplit( jCenteredSection("Program", super), jCenteredSection("Output", dm_textArea output()); start { dm_watchFieldAndNow text(r runProgram); } void runProgram { miniLoading { setField(output := hijack_print(r { bot = new PhilosophyBot1(text); bot.run(); })); } } }