anchor.diff:  (defclass chat-server (ws:ws-resource)
     ((clients :initform (make-hash-table :test #'eq))))
   
  -(defun session-websocket-clients (session)
  -  (transient-session-value 'websocket-clients session))
  -(defun (setf session-websocket-clients) (new-value session)
  -  (setf (transient-session-value 'websocket-clients session) new-value))
  -
   (defmethod ws:resource-client-disconnected ((res chat-server) ws-client
                                               &aux (client (find-client res ws-client)))
     (logit "Client ~S disconnected." client)
  
positive.code: 
  (defun init-websockets (&optional (port *chat-server-port*))
    (register-chat-server)
    (register-session-finalizer 'websocket-clients
                                (lambda (session-id)
                                  (when-let (clients (session-websocket-clients session-id))
                                    (map nil #'disconnect-client clients))))
    (setf *websocket-thread*
          (bordeaux-threads:make-thread
           (lambda ()
  
negative.code:   (remhash (client-ws-client client) (slot-value srv 'clients)))
  
  (defmethod disconnect-client ((server chat-server) client)
    (ws:write-to-client-close (client-ws-client client)))
  
  (defun client-account-id (client)
    (when-let (sess (client-session client))
  