anchor.diff:         (funcall stream 
   	(map-c-vector 'vector #'identity data '(unsigned-byte 8) length)))))
     :success)
  +
  +
  +(defmacro with-surface ((surface cr) &body body)
  +  `(let ((,cr (make-instance 'context :target ,surface)))
  +     ,@body))
   
   
   ;; Image Surface
  
positive.code: (defbinding matrix-init-identity (&optional (matrix (make-instance 'matrix))) nil
    (matrix matrix :in/return))
  
  (defbinding matrix-init-translate () nil
    (matrix matrix :in/return)
    (tx double-float)
    (ty double-float))
  
  (defbinding matrix-init-scale () nil
    (matrix matrix :in/return)
    (sx double-float)
    (sy double-float))
  
negative.code: 
  (defun scale-to-device (cr &optional keep-rotation-p)
    (if keep-rotation-p
        (multiple-value-bind (dx dy) (device-to-user-distance cr 1.0 0.0)
  	(scale cr (sqrt (+ (* dx dx) (* dy dy)))))
      (multiple-value-bind (x y)
  	(with-context (cr)
  	  (move-to cr 0.0 0.0)
  