anchor.diff:  
   (defmethod digest-sequence (state sequence &key (start 0) end
                               digest (digest-start 0))
  -  (declare (type (vector (unsigned-byte 8)) sequence) (type index start))
  -  #+cmu
  -  ;; respect the fill-pointer
  -  (let ((end (or end (length sequence))))
  -    (declare (type index end))
  -    (lisp::with-array-data ((data sequence) (real-start start) (real-end end))
  -      (declare (ignore real-end))
  -      (update-digest state data
  -                     :start real-start :end (+ real-start (- end start)))))
  -  #+sbcl
  -  ;; respect the fill-pointer
  -  (let ((end (or end (length sequence))))
  -    (sb-kernel:with-array-data ((data sequence) (real-start start) (real-end end))
  -      (declare (ignore real-end))
  -      (update-digest state data
  -                     :start real-start :end (+ real-start (- end start)))))
  +  #+(or cmu sbcl)
  +  (locally
  +      (declare (type (vector (unsigned-byte 8)) sequence) (type index start))
  +    ;; respect the fill-pointer
  +    (let ((end (or end (length sequence))))
  +      (declare (type index end))
  +      (#+cmu lisp::with-array-data
  +       #+sbcl sb-kernel:with-array-data ((data sequence) (real-start start) (real-end end))
  +	(declare (ignore real-end))
  +	(update-digest state data
  +		       :start real-start :end (+ real-start (- end start))))))
     #-(or cmu sbcl)
     (let ((real-end (or end (length sequence))))
  -    (declare (type index real-end))
       (update-digest state sequence
                      :start start :end (or real-end (length sequence))))
     (produce-digest state :digest digest :digest-start digest-start))
  
positive.code:     `(defmethod update-digest ((state ,digest-name) (sequence vector) &key (start 0) (end (length sequence)))
         ,@(when (stringp maybe-doc-string)
                 `(,maybe-doc-string))
         (declare (type (simple-array (unsigned-byte 8) (*)) sequence))
         (declare (type index start end))
         ,(hold-me-back)
         ,@(if (stringp maybe-doc-string)
               rest
               body))))
  
  ;;; SPECS is either (DIGEST-NAME DIGEST-BYTES) or a list of the same.
  ;;; The latter spelling is for digests that are related, but have
  
negative.code: 			(error 'insufficient-buffer-space
  			       :buffer buffer :start buffer-start
  			       :length digest-size))))
  		 (cl:null
  		  (,inner-fun-name state
  				   (make-array digest-size
  					       :element-type '(unsigned-byte 8))
  