!7 concept EvaluationResult { S code; S safety; S comments; } cmodule CodeSafetyAnalysis > DynCRUD { transient ReliableSingleThread rstCalc = dm_rst(me(), r calc); S code; PairS safety; // tested code + safety result start { dm_useLocalMechListCopies(); dm_watchFieldAndNow code(rstCalc); } visual jvsplit( centerAndSouthWithMargins(dm_textAreaAsSection code(), centerAndEast(jCenteredSection("Safety", dm_calculatedLabel(() -> pairB(safety))), jbutton("Save", rThreadEnter saveResult)) ), jCenteredSection("Past Results", super)); void calc { S code = this.code; setField(safety := pair(code, botEval_strictSafetyCheck().get(code))); } void saveResult { rstCalc.waitUntilDone(); PairS p = safety; if (p != null) cnew EvaluationResult(code := p.a, safety := p.b); } }