anchor.diff:    (wl-resource-get-version (->resource resource)))
   
   (defmacro def-wl-callback (name (client resource &rest args) &body body)
  -  (let ((client-ptr (gensym "client-ptr"))
  -	(resource-ptr (gensym "resource-ptr")))
  +  (let ((client-ptr (gensym "CLIENT-PTR"))
  +	(resource-ptr (gensym "RESOURCE-PTR")))
       `(cffi:defcallback ,name :void ((,client-ptr :pointer) (,resource-ptr :pointer) ,@args)
          (let* ((,client (get-client ,client-ptr))
   	      (,resource (find-resource ,client (wl-resource-get-user-data ,resource-ptr))))
   	 ,@body))))
   
   (defmacro def-wl-bind (name (client &rest args) &body body)
  -  (let ((client-ptr (gensym "client-ptr")))
  +  (let ((client-ptr (gensym "RESOURCE-PTR")))
       `(cffi:defcallback ,name :void ((,client-ptr :pointer) ,@args)
          (let* ((,client (get-client ,client-ptr)))
   	 ,@body))))
   
   (defmacro def-wl-delete (name (resource) &body body)
  -  (let ((resource-ptr (gensym "resource-ptr")))
  +  (let ((resource-ptr (gensym "RESOURCE-PTR")))
       `(cffi:defcallback ,name :void ((,resource-ptr :pointer))
          (let* ((,resource (find-resource-all ,resource-ptr)))
   	 ,@body))))
  
positive.code:     )
  
  (defmacro defimplementation (name (&rest superclasses) (&rest impls) (&rest slots))
    (let ((impl (intern (concatenate 'string (string-upcase (symbol-name name)) "-IMPLEMENTATION")))
  	(iface (intern (concatenate 'string (string-upcase (symbol-name name)) "-INTERFACE")))
  	(impl-fn (intern (concatenate 'string "IMPLEMENT-" (string-upcase (symbol-name name)))))
  	(set-impl-fn (intern (concatenate 'string "SET-IMPLEMENTATION-" (string-upcase (symbol-name name)))))
  
negative.code:    (width :accessor width :initarg :width :initform 0)
     (height :accessor height :initarg :height :initform 0)
     (operation :accessor operation :initarg :operation :initform nil)))
  
  (defclass isurface ()
    ((x :accessor x :initarg :x :initform 0.0)
  