anchor.diff: -;; uxpr.lisp -- prototyeps for expression of measurement units
  +;; unit-expr-proto.lisp -- prototyeps for expression of measurement units
   
   
   
  
positive.code: 
  ;; ---------
  
  #+PROTOTYPE-2
  (defun compute-measurement (op u1 u2)
    ;; frob - prototype
    (ecase op
      ((+ -) (if (eq u1 u2)
  	       (values u1)
  	       (query-measurement op u1 u2)))
      (* (if (eq u1 u2)
  	   (query-measurement-squared u1)
  	   (query-measurement op u1 u2)))
      (/ (if (eq u1 u2)
  	   (find-the-unit-measurement u1)
  	   (query-measurement op u1 u2)))))
  
  #+PROTOTYPE-2
  (defun domain-analyze (op m1 m2)
    ;; values: base-unit, u1-factor, u1-factor-exponent,
    ;;         u2-factor, u2-factor-exponent
  
negative.code: 	 (domain-2 (class-of unit-2))
  	 (base-1 (measurement-domain-base-measure domain-1))
  	 (base-2 (measurement-domain-base-measure domain-2)))
      (let ((unit (compute-measurement-type op base-1 base-2)))
        (values unit 
  	      (measurement-base-factor unit-1)
  	      (measurement-base-factor-exponent unit-1)
  	      (measurement-base-factor unit-2)
  	      (measurement-base-factor-exponent unit-2)))))
  
  
  (labels ((m* (m1 m2)
  	   (multiple-value-bind (base-unit m1-factor m1-factor-exponent
  					   m2-factor m2-factor-exponent)
  