sclass LoggingBitHead > BitHead { class Event { long byteCounter = LoggingBitHead.this.byteCounter; int align = LoggingBitHead.this.align; int currentByte = LoggingBitHead.this.currentByte; } record WritingBit(bool b) > Event {} record WritingByte(int i) > Event {} event log(Event event); bool writeArraysSlowly() { true; } void writeBit(bool b) { log(new WritingBit(b)); super.writeBit(b); } void writeByte(int i) { log(new WritingByte(i)); super.writeByte(i); } }