anchor.diff:     (width :accessor width :initarg :width :initform 0)
      (height :accessor height :initarg :height :initform 0)
      (operation :accessor operation :initarg :operation :initform nil)))
  -
  -#|
  -(defclass wl-region ()
  -  ((->region :accessor ->region :initarg :->region :initform nil)
  -   (rects :accessor rects :initarg :rects :initform nil)))
  -|#
   
   (defclass isurface ()
     ((x :accessor x :initarg :x :initform 0.0)
  
positive.code:   (let ((client (find-if (lambda (client)
  			   (cffi:pointer-eq (->client client) client-ptr))
  			 *clients*)))
      ;;(format t "GET-CLIENT! Client found: ~A~%" client)
      (if client
  	client
  	(let ((new-client (make-instance 'wl-client :->client client-ptr)))
  
negative.code:     )
  
  (defmacro defimplementation (name (&rest superclasses) (&rest impls) (&rest slots))
    (let ((impl (gensym (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)))))
  