anchor.diff:    (defcallback seat-bind :void
       ((client-ptr :pointer) (data :pointer) (version :uint32) (id :uint32))
       (format t "seat-bind called~%")
  -    (let ((seat (wl-resource-create client-ptr wl-seat-interface 1 id)))
  +    (let ((seat (wl-resource-create client-ptr wl-seat-interface 4 id)))
         (wl-resource-set-implementation
          seat
          seat-implementation
  
positive.code:       (when client
  	(setf (->frame-callback surface) (wl-resource-create client-ptr wl-callback-interface 1 callback)))))
    
    (defcallback my-set-input-region :void
      ((->client :pointer) (resource :pointer) (region :pointer))
      (let* ((->surface (wl-resource-get-user-data resource))
  	   (surface (find-surface ->surface *compositor*)))
  
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))))
    
  