anchor.diff:        (deletef (clients (service-provider client))
                  client))))
   
  -(defun make-listener-function (server)
  -  (lambda (fd event exception)
  -    (declare (ignorable fd event exception))
  +(defgeneric on-client-connection (server)
  +  (:method ((server tcp-service-provider))
       (let ((client-socket (iolib:accept-connection (socket server))))
         (when client-socket
           (let ((client (make-instance 'client
  
positive.code:                                  :write
                                   (make-writer-function client)))))))
  
  (defun make-reader-function (client)
    (lambda (fd event exception)
      (declare (ignorable fd event exception))
      (handler-case
          (let* ((buffer (input-buffer client))
                 (bytes-read
  
negative.code:         (format t "Unexpected EOF.~%")))))
  
  (defmethod update ((server tcp-service-provider))
    (dispatch-events server)
    (loop for client in (clients server)
       for line = (read-line-from-client client)
       when line do (print line) (write-to-client client line)))
  
  (defun make-queue ()
    (cons nil nil))
  
  (defun enqueue (obj q)
    (if (null (car q))
        (setf (cdr q) (setf (car q) (list obj)))
        (setf (cdr (cdr q)) (list obj)
              (cdr q) (cdr (cdr q))))
    (car q))
  
  (defun dequeue (q)
    (pop (car q)))
  
  (defun queue-empty-p (queue)
    (null (car queue)))
  
  (defclass client ()
    ((socket :accessor socket :initarg :socket
  