anchor.diff:                        unit 
                         (+ degree scale))))
   
  +;; (make-measurement-1 1 :m 5)
  +;; => #<METER 100 km {1003FF93A3}>
  +;; (measurement-magnitude (make-measurement-1 1 :m 5))
  +;; => 1
  +
   ;; (make-measurement-1 1 :m 3)
  -;; => #<METER 1E+3 km {1003FF93A3}>
  +;; => #<METER 1 km {1003FF93A3}>
   ;
   ;; (measurement-magnitude (make-measurement 1 :m 3))
   ;; => 1
  
positive.code: ;; (measurement-degree (make-measurement-1 1 :m 3))
  ;; => 3
  
  ;; (make-measurement-1 1000 :m 3)
  ;; => #<METER 1E+3 km {1003FF93A3}>
  ;
  ;; (measurement-magnitude (make-measurement 1000 :m 3))
  ;; => 1000
  
negative.code:     (multiple-value-bind (mag boundp)
          (slot-value* object 'magnitude)
        (cond 
          (boundp
           (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))))
      
      (princ (measurement-print-name (class-of object))
             stream)))
  