anchor.diff:  
   ;;;Builds ordered code tables for encoder
   (defun build-tables (bits huffval)
  -  (let ((ehufco (make-array 256))
  -        (ehufsi (make-array 256)))
  +  (let ((ehufco (make-array 256 :element-type 'fixnum))
  +        (ehufsi (make-array 256 :element-type 'fixnum)))
       (multiple-value-bind (huffcode huffsize lastk)
           (build-universal-tables bits)
  -      (declare (type (simple-array t (*)) huffsize huffcode)
  +      (declare (type fixnum-array huffsize huffcode)
                  (type fixnum lastk))
         (loop with i fixnum for k from 0 below lastk do
               (setf i (aref huffval k))
  
positive.code:          (diff (minus newpred pred))
           (dcpos (csize diff)))
      (declare (type fixnum pred newpred diff dcpos)
  	     (type uint8-array ehufco-ac ehufco-dc ehufsi-dc ehufsi-ac)
               (dynamic-extent diff dcpos))
      ;; writing dc code first
      (write-bits (aref ehufco-dc dcpos) (aref ehufsi-dc dcpos) s)
  
negative.code: (defun descale (x n)
    (declare #.*optimize* (type fixnum x n))
    (the fixnum (ash (plus x (ash 1 (1- n))) (- n))))
  
  ;;; Implementation of Loeffer, Ligtenberg and Moschytz forward DCT
  (defun llm-dct (data)
  