anchor.diff:  (declaim (ftype (-> (simple-string index) (unsigned-byte 8)) char-ref))
   
   (defun char-ref (string pos)
  -  (declare (optimize speed) (simple-base-string string) (index pos))
  +  (declare (optimize speed) (8-bit-string string) (index pos))
     (char-code (schar string pos)))
   
   ;; http://www.foldr.org/~michaelw/log/programming/lisp/icfp-contest-2006-vm
  
positive.code:           (hash32-body byte-ref))
          (hash32-body byte-ref)))
  
    (defun hash32-base-string (vec seed &optional (len (length vec)) mix-only)
      (declare (index len) (simple-string vec))
      (hash32-body char-ref)))
  
  
negative.code:     (declare (integer vec))
      (hash128-body byte-ref))
  
    (defun hash128-8-bit-string (vec seed &optional (len (length vec)) mix-only)
      (declare (index len) (simple-string vec))
      (hash128-body char-ref)))
  
  (declaim (inline hash-string mix32 finalize32 mix128 finalize128))
  
  (defun hash-string (s seed mix-only)
    (let ((size *hash-size*))
      (flet ((hash-string (s)
               (ecase size
                 (32 (hash32-8-bit-string s seed (length s) mix-only))
                 (128 (hash128-8-bit-string s seed (length s) mix-only))))
             (hash-octets (octets)
               (ecase size
                 (32 (hash32-octets octets seed (length octets) mix-only))
                 (128 (hash128-octets octets seed (length octets) mix-only)))))
        (declare (dynamic-extent (function hash-string) (function hash-octets)))
        (if (typep s '8-bit-string)
            (hash-string s)
            (hash-octets (babel:string-to-octets s))))))
  
  (defun hash-integer (x seed &optional mix-only)
    (ecase *hash-size*
  