sclass OrError extends Var { Throwable error; *() {} *(A value) { super(value); } *(bool dummy, Throwable *error) {} bool ok() { ret error == null; } toString { ret ok() ? super.toString() : str(error); } }