anchor.diff:                  ;; function would return an inaccurate value,
                   ;; in that instance.
                   (incf scaled-magnitude))
  -            (multiple-value-bind (scale-shift magnitude)
  +            (multiple-value-bind (magnitude scale-shift)
                   (integer-shift-digits scaled-magnitude)
  -              (return (values (- scale-shift n)
  -                              magnitude)))))
  +              (return (values magnitude
  +			      (- scale-shift n))))))
              (t (incf n)))))))
   
   ;; (float-shift-digits 1)
  -;; => 0, 1
  +;; => 1, 0
   
   ;; (float-shift-digits 12)
  -;; => 0, 12
  +;; => 12, 0
   ;; (float-shift-digits 12.0)
  -;; => 0, 12
  +;; => 12, 0
   ;; (float-shift-digits 12.1)
  -;; => -1, 121
  +;; => 121, -1
   ;;
   
   ;; (float-shift-digits 120.1)
  -;; => -1, 1201
  +;; => 1201, -1
   
   ;; (float-shift-digits pi)
  -;; => -15, 3141592653589793
  +;; => 3141592653589793, -15
   ;; ^ not all the same as (RATIONALIZE PI)
   
   ;; (float-shift-digits 12000)
  -;; => 3, 12
  +;; => 12, 3
   
   ;; n.b: 
   ;; (* 10 314.1592653589793d0)
  
positive.code:   => T
  "
    (declare (type integer d)
             (values fixnum integer))
    (cond
      ((zerop d)
       (values 0 0))
  
negative.code:        (values (make-instance class :magnitude magnitude 
                                :degree degree)))
        (real 
         (multiple-value-bind (adj-magnitude scale)
             (float-shift-digits magnitude)
           (values (make-instance 
                    class
  