anchor.diff:  (defun read-octet-array (stream &optional buffer)
     (let ((len (read-uint32 stream)))
       (when (> len +max-octet-array-length+)
  -      (break)
         (error "Attempted to read a silly size array ~DMB" (truncate len (* 1024 1024))))
       (let ((sequence (or buffer (nibbles:make-octet-vector len))))
         (dotimes (i len)
  
positive.code: 
  (defxtype :string ((:reader read-xstring) (:writer write-xstring))
    ((stream)
     (let* ((len (read-uint32 stream))
  	  (buff (nibbles:make-octet-vector (pad-index len))))
       (read-sequence buff stream)
       (babel:octets-to-string buff :start 0 :end len)))
    ((stream obj)
     (let* ((octets (babel:string-to-octets obj))
  	  (length (length octets)))
  
negative.code: 
  (defun enum (enum slot)
    (let ((enums (if (listp enum)
                     enum 
                     (gethash enum *enums*))))
      (unless enums
        (error "No enum defined for ~S" enum))
      (etypecase slot
        (symbol
         (dolist (s enums)
           (when (eq slot (car s))
             (return-from enum (cdr s)))))
        (integer 
         (dolist (s enums)
           (when (= slot (cdr s))
             (return-from enum (car s))))))
      slot))
  
  (defun enump (enum-type)
    (nth-value 1 (gethash enum-type *enums*)))
  