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: ;; ^ a decimal digit is introduced
  
  ;; (float-shift-digits 1.201d0)
  ;; => -3, 1201
  ;; ^ subtly works around a matter of floating point error
  ;;   i.e. in which (* 10  1.201d0)
  ;;                  => 12.010000000000002d0
  
  ;; (float-shift-digits 1.201)
  ;; => -3, 1201
  
  ;; (float-shift-digits 11.0d0)
  ;; 0, 11
  
  
  ;; n.b
  
negative.code:               (truncate d 10) 
              (cond
                ((zerop r) (setq d a) (incf n))
                (t (return (values d n))))))))))
      
  #+NIL ;;instance tests
  (labels ((frob-test (n)
             (multiple-value-bind (magnitude scale)
                 (integer-shift-digits n)
               (values scale magnitude
                       (= n (* magnitude (expt 10 scale)))))))
    ;; (frob-test 1020)
    ;; => 102, 1, T
    
    ;; (frob-test 102)
    ;; => 102, 0, T
  
    ;; (frob-test 10)
    ;; => 1, 1, T
  
    ;; (frob-test 1)
    ;; => 1, 0, T
  
    ;; (frob-test 0)
    ;; => 0, 0, T
    )
  
  
  (defun float-shift-digits (d) 
  "A floating point value, `d`, with a known number of significant decimal digits, `n`, may be represented as a sequence of rational values
  