anchor.diff:  					    (event-sheet button-event)
   					    button-event))
   
  -(defmacro with-input-context ((type &key override) 
  +(defmacro with-input-context ((type &key override)
   			      (&optional (object-var (gensym))
   					 (type-var (gensym))
   					 event-var
   					 options-var)
  -			      form 
  +			      form
   			      &body pointer-cases)
  -  (let ((vars `(,object-var 
  +  (let ((vars `(,object-var
   		,type-var
   		,@(and event-var `(,event-var))
   		,@(and options-var `(,options-var))))
  
positive.code: 
  
  (defun input-context-wait-test (stream)
    (declare (ignore stream))
    (let* ((queue (stream-input-buffer stream))
  	 (event (event-queue-peek queue)))
      (when event
  
negative.code: 		   (*input-wait-test* #'input-context-wait-test)
  		   (*input-wait-handler* #'input-context-event-handler))
  	       (return-from ,return-block ,form )))
           (declare (ignorable ,object-var ,type-var)) ; XXX only when they are GENSYMed
  	 (cond ,@(mapcar #'(lambda (pointer-case)
  			     (destructuring-bind (case-type &body case-body)
  				 pointer-case
  