anchor.diff:      (multiple-value-bind (mag boundp)
           (slot-value* object 'magnitude)
         (cond 
  -        ((and boundp (typep mag 'ratio))
  -         (princ (float mag) stream))
           (boundp
  -         (princ mag stream))
  +         (multiple-value-bind (deg boundp)
  +             (slot-value* object 'degree)
  +           (cond
  +             (boundp
  +              (multiple-value-bind (adj-mag deg)
  +                  (scale-for-si-degree mag deg)
  +                (let ((prefix (find-prefix= deg))) 
  +                  (princ adj-mag stream)
  +                  (write-char #\Space stream)
  +                  (princ (prefix-print-name prefix) stream))))
  +             (t (princ mag stream)))))
           (t
            (princ "{no magnitude}" stream))))
  -
  -    (multiple-value-bind (deg boundp)
  -        (slot-value* object 'degree)
  -      (cond
  -        ((and boundp (zerop (the fixnum deg)))
  -         (write-char #\Space stream))
  -        (boundp
  -         (format stream "E~@D" deg)
  -         (write-char #\Space stream)
  -         (princ (prefix-print-name (prefix-of object)) stream))
  -        (t  (princ "{no degree} " stream))))
       
       (princ (measurement-print-name (class-of object))
              stream)))
  
positive.code:            (values prefix))
    (or (find s %prefixes%
              :test #'eq
              :key #'measurement-symbol)
        (error 'prefix-not-found :name s)))
  
  
  ;; define prefix classes
  
negative.code: ;; (measurement-degree (make-measurement 1000 :m 3))
  ;; => 3
  
  ;; improved:
  ;; (measurement-magnitude (make-measurement-1 1000 :m 3))
  ;; => 1
  ;; (measurement-degree (make-measurement-1 1000 :m 3))
  