anchor.diff:    (:type :no-expose))
     
   (defclass scroll-event (timed-event)
  -  ()
  +  ((x
  +    :allocation :alien
  +    :accessor event-x
  +    :initarg :x
  +    :type double-float)
  +   (y
  +    :allocation :alien
  +    :accessor event-y
  +    :initarg :y
  +    :type double-float)
  +   (state
  +    :allocation :alien
  +    :accessor event-state
  +    :initarg :state
  +    :type modifier-type)
  +   (direction
  +    :allocation :alien
  +    :accessor event-direction
  +    :initarg :direction
  +    :type scroll-direction)
  +   (root-x
  +    :allocation :alien
  +    :accessor event-root-x
  +    :initarg :root-x
  +    :type double-float)
  +   (root-y
  +    :allocation :alien
  +    :accessor event-root-y
  +    :initarg :root-y
  +    :type double-float))
     (:metaclass event-class)
     (:type :scroll))
   
  -(defclass setting-event (timed-event)
  -  ()
  +(defclass setting-event (event)
  +  ((action
  +    :allocation :alien
  +    :accessor event-action
  +    :initarg :action
  +    :type setting-action)
  +   (name
  +    :allocation :alien
  +    :accessor event-name
  +    :initarg :name
  +    :type string))
     (:metaclass event-class)
     (:type :setting))
  +
  +(defclass proximity-event (timed-event)
  +  ((device
  +    :allocation :alien
  +    :accessor event-device
  +    :initarg :device
  +    :type device))
  +  (:metaclass event-class))
  +
  +(defclass proximity-in-event (proximity-event)
  +  ()
  +  (:metaclass event-class)
  +  (:type :proximity-in))
  +
  +(defclass proximity-out-event (proximity-event)
  +  ()
  +  (:metaclass event-class)
  +  (:type :proximity-out))
  +
  +(defclass window-state-event (event)
  +  ((change-mask
  +    :allocation :alien
  +    :accessor event-change-mask
  +    :initarg :change-mask
  +    :type window-state)
  +   (new-window-state
  +    :allocation :alien
  +    :accessor event-new-window-state
  +    :initarg :new-window-state
  +    :type window-state))
  +  (:metaclass event-class)
  +  (:type :window-state))
  +  
  +(defclass owner-change-event (event)
  +  ()
  +  (:metaclass event-class)
  +  (:type :owner-change))
  +
  
positive.code:     :accessor event-y
      :initarg :y
      :type double-float)
     (state
      :allocation :alien
      :offset #.(size-of 'pointer)
      :accessor event-state
      :initarg :state
      :type unsigned-int)
     (is-hint
      :allocation :alien
      :accessor event-is-hint
      :initarg :is-hint
  
negative.code:   (:metaclass event-class)
    (:type :motion-notify))
    
  (defclass button-event (input-event)
    ((button
      :allocation :alien
      :accessor event-button
      :initarg :button
  