sclass DoneFlag extends Flag { transient volatile O error; transient bool printErrors; *() {} *(bool *printErrors) {} void done() { raise(); } void done aka setError(O error) { this.error = error; if (printErrors) printStackTrace_gen(error); raise(); } bool hasError() { ret error != null; } bool isDone() { ret isUp(); } }