anchor.diff:    (declare (type dual-channel-gray-stream stream))
     (loop :for offset :from start :below end
           :for octet := (stream-read-byte stream)
  -     :if (eql octet :eof) :do (loop-finish)
  +     :if (eq octet :eof) :do (loop-finish)
        :else :do (setf (aref vector offset) octet)
        :finally (return offset)))
   
  
positive.code:         (when (< 0 (iobuf-end-space-length ib) 4)
            (iobuf-copy-data-to-start ib))
          (when (and (iomux:fd-ready-p fd :read)
                     (eql :eof (%fill-ibuf ib fd)))
            (setf eof t))
          (when (zerop (iobuf-length ib))
            (return (if eof :eof nil)))
          ;; line-end handling
          (let ((line-end (maybe-find-line-ending-no-hang fd ib ef)))
            (cond ((eql line-end :starvation)
                   (return (if eof #\Return nil)))
                  ((characterp line-end)
                   (return line-end))))
  
negative.code:          :when nl-off :do (%write-line-terminator stream line-terminator)
           :when (> off2 off1) :do
           ;; FIXME: should probably convert directly to a foreign buffer?
           (setf octets (%to-octets string off1 off2 ef))
           (%write-simple-array-ub8 stream octets 0 (length octets))
           :while (< off2 end))))
    (values string))
  