anchor.diff:     ->frame-callback
      input-region
      opaque-region
  +   wl-surface
      subsurfaces
  -   ->xdg-surface
  -   ->xdg-toplevel
  -   ->xdg-popup
  -   ->zxdg-surface
  -   ->zxdg-toplevel
      parent
  -   hotspot-x
  -   hotspot-y
      keyboard-send-leave
      keyboard-send-enter
      keyboard-send-modifiers))
  
positive.code:    wl-client
     get-client
     remove-client
     wl-surface
     wl-subsurface
     wl-cursor
     wl-cursor?
     xdg-surface
     xdg-surface?
     zxdg-surface
     zxdg-surface?
     zxdg-toplevel
     zxdg-toplevel?
     zxdg-popup
     zxdg-popup?
     activate
     deactivate
     resize
     xdg-popup
     accepts-pointer-events?
     x
     y
  
negative.code:     (foreign-free array)))
  |#
  
  (defmethod keyboard-send-enter ((surface isurface))
    (when (keyboard (client surface))
      (with-wl-array array
  