anchor.diff:        `(flet ((check-button (,b) (= ,button ,b))
   	      (check-modifier (,m) (not (zerop (logand ,m ,modifier-state)))))
   	 (and ,@(do-substitutes clauses))))))
  +
  +(defmethod event-type ((event device-event)) :device)
  +(defmethod event-type ((event keyboard-event)) :keyboard)
  +(defmethod event-type ((event key-press-event)) :key-press)
  +(defmethod event-type ((event key-release-event)) :key-release)
  +(defmethod event-type ((event pointer-event)) :pointer)
  +(defmethod event-type ((event pointer-button-event)) :pointer-button)
  +(defmethod event-type ((event pointer-button-press-event)) :pointer-button-press)
  +(defmethod event-type ((event pointer-button-release-event)) :pointer-button-release)
  +(defmethod event-type ((event pointer-button-hold-event)) :pointer-button-hold)
  +(defmethod event-type ((event pointer-motion-event)) :pointer-motion)
  +(defmethod event-type ((event pointer-boundary-event)) :pointer-boundary)
  +(defmethod event-type ((event pointer-enter-event)) :pointer-enter)
  +(defmethod event-type ((event pointer-exit-event)) :pointer-exit)
  +(defmethod event-type ((event window-event)) :window)
  +(defmethod event-type ((event window-configuration-event)) :window-configuration)
  +(defmethod event-type ((event window-repaint-event)) :window-repaint)
  +(defmethod event-type ((event window-manager-event)) :window-manager)
  +(defmethod event-type ((event window-manager-delete-event)) :window-manager-delete)
  +(defmethod event-type ((event timer-event)) :timer)
  +
  +;; keyboard-event-character keyboard-event 
  +;; pointer-event-native-x pointer-event
  +;; pointer-event-native-y pointer-event
  +;; window-event-native-region window-event
  +;; window-event-mirrored-sheet window-event
  +
  +;; Key names are a symbol whose value is port-specific. Key names
  +;; corresponding to the set of standard characters (such as the
  +;; alphanumerics) will be a symbol in the keyword package.
  +;; ???!
  
positive.code:   (
     ))
  
  (defclass timer-event (event)
    (
     ))
  
  ;;; Constants dealing with events
  
  
negative.code:   (
     ))
  
  
  (defclass pointer-button-press-event (pointer-button-event) ())
  
  (defclass pointer-button-release-event (pointer-button-event) ())
  
  (defclass pointer-button-hold-event (pointer-button-event) ())
  
  
  (defclass pointer-button-click-event (pointer-button-event)
    (
     ))
  