anchor.diff:  
   (defmethod remove-client ((srv chat-server) client)
     (remhash (client-ws-client client) (slot-value srv 'clients)))
  +
  +(defmethod find-client ((res chat-server) ws-client)
  +  (gethash ws-client (slot-value res 'clients)))
   
   (defmethod disconnect-client ((server chat-server) client)
     (ws:write-to-client-close (client-ws-client client)))
  
positive.code: 
  (defvar *websocket-server*)
  
  (defclass chat-server (ws:ws-resource)
    ((clients :initform (make-hash-table :test #'eq))))
  
  (defun register-chat-server ()
    (ws:register-global-resource
     "/chat"
     (setf *websocket-server* (make-instance 'chat-server))
     (ws:origin-prefix "http://zushakon.sykosomatic.org")))
  
  (defgeneric add-client (chat-server client))
  (defgeneric remove-client (chat-server client))
  (defgeneric validate-client (chat-server client))
  (defgeneric disconnect-client (chat-server client))
  
  
negative.code: 
  (defun client-write-json (client obj)
    (client-write client (jsown:to-json obj)))
  
  (defun client-account-id (client)
    (when-let (sess (client-session client))
  