sclass OKOrError { A value; Throwable error; *() {} *(A *value) {} *(bool dummy, Throwable *error) {} bool ok() { ret error == null; } }