anchor.diff:      (#?(pkg-exists-p "cairo" :atleast-version "1.2")
        (type
         :allocation :virtual 
  -      :getter "cairo_surface_get_tyoe"
  +      :getter "cairo_surface_get_type"
         :reader surface-type
         :type surface-type)
        #?(pkg-exists-p "cairo" :atleast-version "1.2")
  
positive.code: 
  ;;; Surfaces
  
  (defbinding %surface-reference () nil
    (location pointer))
  
  (defbinding %surface-destroy () nil
  
negative.code:       :allocation :virtual 
        :getter "cairo_image_surface_get_height"
        :reader surface-height
        :type int)
       #?(pkg-exists-p "cairo" :atleast-version "1.2")
       (stride
        :allocation :virtual 
        :getter "cairo_image_surface_get_stride"
        :reader surface-height
        :type int))
      (:metaclass proxy-class))
  
    #?(pkg-exists-p "cairo" :atleast-version "1.2")
    (progn
      (defclass xlib-surface (surface)
        ((width
  	:allocation :virtual 
  	:getter "cairo_xlib_surface_get_width"
  	:reader surface-width
  	:type int)
         (height
  	:allocation :virtual 
  	:getter "cairo_xlib_surface_get_height"
  	:reader surface-height
  	:type int))
        (:metaclass proxy-class))
  
      (defclass pdf-surface (surface)
        ()
        (:metaclass proxy-class))
  
      (defclass ps-surface (surface)
        ()
        (:metaclass proxy-class))
      
      (defclass svg-surface (surface)
        ()
        (:metaclass proxy-class)))
  
  
  
  ;;   (defclass path (proxy)
  