anchor.diff:        (distribute-event port event)
         t))))
   
  -(defmethod distribute-event ((port port) event)
  +(defmethod distribute-event ((port basic-port) event)
     (cond
      ((typep event 'keyboard-event)
       (dispatch-event (or (port-keyboard-input-focus port)
  
positive.code: 		(push port *all-ports*)
  		(return port))))
  
  (defmethod port-lookup-mirror ((port port) (sheet mirrored-sheet-mixin))
    (gethash sheet (slot-value port 'sheet->mirror)))
  
  (defmethod port-lookup-sheet ((port port) mirror)
    (gethash mirror (slot-value port 'mirror->sheet)))
  
  (defmethod port-register-mirror ((port port) (sheet mirrored-sheet-mixin) mirror)
    (setf (gethash sheet (slot-value port 'sheet->mirror)) mirror)
    (setf (gethash mirror (slot-value port 'mirror->sheet)) sheet)
    nil)
  
  (defmethod port-unregister-mirror ((port port) (sheet mirrored-sheet-mixin) mirror)
    (remhash sheet (slot-value port 'sheet->mirror))
    (remhash mirror (slot-value port 'mirror->sheet))
    nil)
  
  (defmethod realize-mirror ((port port) (sheet mirrored-sheet-mixin))
    (error "Don't know how to realize the mirror of a generic mirrored-sheet"))
  
  (defmethod destroy-mirror ((port port) (sheet mirrored-sheet-mixin))
    (error "Don't know how to destroy the mirror of a generic mirrored-sheet"))
  
  (defmethod mirror-transformation ((port port) mirror)
    (declare (ignore mirror))
    (error "MIRROR-TRANSFORMATION is not implemented for generic ports"))
  
  (defmethod port-properties ((port port) indicator)
    (with-slots (properties) port
      (getf properties indicator)))
  
  (defmethod (setf port-properties) (value (port port) indicator)
    (with-slots (properties) port
      (setf (getf properties indicator) value)))
  
  (defmethod get-next-event ((port port) &key wait-function timeout)
    (declare (ignore wait-function timeout))
    (error "Calling GET-NEXT-EVENT on a PORT protocol class"))
  
  (defmethod process-next-event ((port port) &key wait-function timeout)
    (let ((event (get-next-event port :wait-function wait-function :timeout timeout)))
      (cond
       ((null event) nil)
  
negative.code:    (keyboard-input-focus :initform nil
  			 :initarg :keyboard-input-focus
  			 :accessor port-keyboard-input-focus)
     (event-process
      :initform nil
      :initarg  :event-process
      :accessor port-event-process
      :documentation "In a multiprocessing environment, the particular process
                      reponsible for calling PROCESS-NEXT-EVENT in a loop.")
     
     (lock
      :initform (make-recursive-lock "port lock")
      :accessor port-lock) ))
  
  (defun find-port (&key (server-path *default-server-path*))
    (loop for port in *all-ports*
  