anchor.diff:  	(first-commit (current-mode) surface))
         (setf (render-needed *compositor*) t)))
     
  -  (defcallback my-attach :void
  +  (defcallback attach :void
       ((client-ptr :pointer) (resource :pointer) (buffer :pointer) (x :int32) (y :int32))
       (let* ((client (find-client client-ptr *compositor*))
   	   (->surface (wl-resource-get-user-data resource)))
         (format t "New buffer ~A~%" buffer)
         (setf (->buffer (find-surface ->surface *compositor*)) buffer)))
     
  -  (defcallback my-frame :void
  +  (defcallback frame :void
       ((client-ptr :pointer) (resource :pointer) (callback :uint32))
       (let* ((->surface (wl-resource-get-user-data resource))
   	   (client (find-client client-ptr *compositor*))
  
positive.code:     (format t "Surface requested move~%")
      (let* ((surface-ptr (wl-resource-get-user-data resource))
  	   (surface (find-surface surface-ptr *compositor*)))
          (setf (moving-surface *compositor*) surface)))
  
  ;;  (defcallback resize :void
    ;;  )    
  
negative.code:   
    (defcallback get-keyboard :void
      ((client :pointer) (resource :pointer) (id :uint32))
      (let ((keyboard (wl-resource-create client wl-keyboard-interface (wl-resource-get-version resource) id)))
        (wl-resource-set-implementation
         keyboard
         keyboard-implementation
         (null-pointer)
         (null-pointer))
        (setf (->keyboard (find-client client *compositor*)) keyboard)
        (when (>= (wl-resource-get-version keyboard) 4)
  	(wl-keyboard-send-repeat-info keyboard 30 200))
        (multiple-value-bind (fd size) (get-keymap *compositor*)
  	(wl-keyboard-send-keymap keyboard 1 fd size))))
    
  