code: void put(final ByteVector out) {
          int n = 0;
          int size = 2;
          AnnotationWriter aw = this;
          AnnotationWriter last = null;
          while (aw != null) {
              ++n;
              size += aw.bv.length;
              aw.visitEnd(); // in case user forgot to call visitEnd
              aw.prev = last;
              last = aw;
              aw = aw.next;
          }
          out.putInt(size);
          out.putShort(n);
          aw = last;
          while (aw != null) {
              out.putByteArray(aw.bv.data, 0, aw.bv.length);
              aw = aw.prev;
          }
      }
docs: Puts the annotations of this annotation writer list into the given byte
  vector.
  
  @param out where the annotations must be put.