anchor.diff:    ;; what gives (scaling-transformation-p (make-translation-transformation 17 42))
     ;; I think it would be strange if (s-t-p (make-s-t* 2 1 1 0)) is not T. -- APD
     (multiple-value-bind (mxx mxy myx myy tx ty) (get-transformation transformation)
  +    (declare (ignore tx ty))
       (and (coordinate= 0 mxy) (coordinate= 0 myx)
            (coordinate/= 0 mxx) (coordinate/= 0 myy)))) ; ?
   
  
positive.code:          (coordinate= myx 0)
           (coordinate= myy -1))))
  
  (defmethod compose-transformations ((transformation2 standard-transformation) (transformation1 standard-transformation))
    ;; (compose-transformations A B)x = (A o B)x = ABx
    (multiple-value-bind (a1 b1 d1 e1 c1 f1) (get-transformation transformation1)
      (multiple-value-bind (a2 b2 d2 e2 c2 f2) (get-transformation transformation2)
  
negative.code: 
  (defmacro with-scaling ((medium sx &optional sy origin) &body body)
    (if sy
        `(with-drawing-options (,medium :transformation (make-scaling-transformation
                                                         ,sx ,sy ,@(if origin (list origin) nil)))
           ,@body)
      (let ((sx-var (make-symbol "SX")))
        `(let* ((,sx-var ,sx))
  