anchor.diff:        :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)
  
positive.code:     (#?(pkg-exists-p "cairo" :atleast-version "1.2")
       (type
        :allocation :virtual 
        :getter "cairo_surface_get_tyoe"
        :reader surface-type
        :type surface-type)
       #?(pkg-exists-p "cairo" :atleast-version "1.2")
  
negative.code: 
  ;;; Surfaces
  
  (defbinding %surface-reference () pointer
    (location pointer))
  
  (defbinding %surface-destroy () nil
  