sclass StringHead { settable bool readMode; settable bool writeMode; gettable InputStream inputStream; gettable OutputStream outputStream; *() {} *(Reader reader) { reader(reader); } *(Writer writer) { writer(writer); } selfType reader(Reader reader) { this.reader = reader; readMode(true); this; } selfType writer(Writer writer) { this.writer = writer; writeMode(true); this; } void finish {} }