anchor.diff:  ;; EXPORT
   (defun bit-read-byte (bitio byte-width bit-endian
                         &optional (eof-error-p T) (eof-value NIL))
  -  "Read a single unsigned 'byte' from the bitio stream. You must specify
  -the BIT-ENDIAN mode (:be or :le) and how big the byte is in bits, the
  -BYTE-WIDTH. You can supply the optional keywords EOF-ERROR-P and
  -EOF-VALUE as in READ-BYTE). The returned value is always unsigned."
  +  "Read a single unsigned 'byte' from the bitio stream. You must
  +specify the BIT-ENDIAN mode (:BE or :LE, See BIT-READ-BITS) and how
  +big the byte is in bits: BYTE-WIDTH. You can supply the optional
  +keywords EOF-ERROR-P and EOF-VALUE as in READ-BYTE). The returned
  +value is always unsigned. If the number of bits requested is more than
  +is in the stream, you will get a short read of bits, so it is
  +recommended to check the return value to ensure you got the number of
  +bits you expected."
     (bit-read-bits bitio byte-width bit-endian eof-error-p eof-value))
   
   ;; EXPORT
  
positive.code: (defun bit-read-bytes (bitio seq bit-endian byte-width
                         &key (start 0) end)
    "This reads UNSIGNED 'bytes' into SEQ given :START and :END keywords.
  THe default span is the entire sequence. BIT-ENDIAN is how the
  individual bits are read from the octet stream, and byte-width is how
  many bits wide a 'byte' is in the stream. Return how many elements
  have been read. The sequence is destructively modified. At EOF
  
negative.code: (defun make-bitio (octet-stream bitio/read-octet &rest init-args)
    "OCTET-STREAM must be a stream that is ready to read/write binary octets
  of (unsigned-byte 8) type. BITIO/READ-OCTET is a function associated with
  the OCTET-STREAM that reads a single octet from that stream. Returns an
  instance of a BITIO class."
    (apply #'make-instance 'bitio
           :octet-stream octet-stream
  