anchor.diff:          (iobuf-end iobuf)   0))
   
   (defun iobuf-next-data-zone (iobuf)
  +  (declare (type iobuf iobuf))
     (values (iobuf-data iobuf)
             (iobuf-start iobuf)
             (iobuf-end iobuf)))
   
   (defun iobuf-next-empty-zone (iobuf)
  +  (declare (type iobuf iobuf))
     (values (iobuf-data iobuf)
             (iobuf-end iobuf)
             (iobuf-size iobuf)))
  
positive.code:            (type iobuf-index start end))
    (when (iobuf-empty-p iobuf)
      (iobuf-reset iobuf))
    (let* ((iobuf-start (iobuf-start iobuf))
           (iobuf-end (iobuf-end iobuf))
           (nbytes
            (nth-value 1 (replace-ub8 (iobuf-data iobuf) vector
                                      iobuf-start iobuf-end
                                      start end))))
      (setf (iobuf-end iobuf) (+ iobuf-end nbytes))
      (values nbytes)))
  
negative.code:     (replace destination source
               :start1 start1 :end1 end1
               :start2 start2 :end2 end2)
      (values nbytes)))
  
  (defun iobuf->vector (iobuf vector start end)
    (declare (type iobuf iobuf)
  