srecord noeq BitToByteOutputStream(OutputStream out) > BitOutputStream {
  new BitBuffer buffer;
  
  void writeBit(bool b) {
    buffer.add(b);
    internalFlush();
  }
  
  void internalFlush ctex {
    while (buffer.hasFullByte())
      out.write(buffer.popFullByte());
  }
  

  // TODO: optimize void writeBits(int data, int nBits)
}