anchor.diff:  ;; method based event handling
   (defun dispatch-events (window &key blocking)
     "Process all pending system events and call corresponding methods.
  -   When :blocking is non-nil calls event handling func that will block
  -   until an event occur.
  -   Returns NIL on :CLOSE event, T otherwise."
  +When :blocking is non-nil calls event handling func that will block
  +until an event occurs.
  +Returns NIL on :CLOSE event, T otherwise."
     (loop for evt = (next-event window :blocking blocking)
       while evt
       do  (case (event-type evt)
  
positive.code: 
  (defdfun next-event (window &key blocking)
    "Returns next available event for manual processing.
     If :blocking is true wait until an event occur."
    (let ((pushed-evt (window-pushed-event window)))
      (if pushed-evt
          (progn (setf (window-pushed-event window) nil)
  
negative.code: )
  
  (defun push-event (window evt)
    "Push an artificial event into the event processing system.
  Note that this has no effect on the underlying window system."
    (setf (window-pushed-event window) evt))
  
  (defun push-close-event (window)
  