anchor.diff:            (multiple-value-bind (fraction-and-guard rem)
                 (truncate shifted-num den)
               (let ((extra (- (integer-length fraction-and-guard) digits)))
  -              (declare (fixnum extra))
  +              (declare (type fixnum extra))
                 (cond ((/= extra 1)
                        (assert (> extra 1)))
                       ((oddp fraction-and-guard)
  
positive.code:                    (single-float +single-float-digits+)
                     (double-float +double-float-digits+)))
           (scale 0))
      (declare (fixnum digits scale))
      ;; Strip any trailing zeros from the denominator and move it into the scale
      ;; factor (to minimize the size of the operands.)
      (let ((den-twos (1- (integer-length (logxor den (1- den))))))
        (declare (fixnum den-twos))
        (decf scale den-twos)
        (setq den (ash den (- den-twos))))
      ;; Guess how much we need to scale by from the magnitudes of the numerator
  
negative.code:            (delta (- den-len num-len))
             (shift (1+ (the fixnum (+ delta digits))))
             (shifted-num (ash num shift)))
        (declare (type fixnum delta shift))
        (decf scale delta)
        (labels ((float-and-scale (bits)
                   (let* ((bits (ash bits -1))
  