sclass Stage implements Runnable { S name; bool done; O result; PersistableThrowable error; //long started, done; // timestamps //S log; IF0 code; sS _fieldOrder = "name done result"; *() {} *(S *name) {} *(S *name, IF0 *code) {} event computed; run { if (done || code == null) ret; try { result = code!; computed(); } catch print e { error = persistableThrowable(e); } finally { done = true; } } }