anchor.diff:  
   (defun client-write-json (client obj)
     (client-write client (jsown:to-json obj)))
  -
  -(defun find-client (chat-server ws-client)
  -  (gethash ws-client (slot-value chat-server 'clients)))
   
   (defun client-account-id (client)
     (when-let (sess (client-session client))
  
positive.code: ;;;
  ;;; Protocol implementations
  ;;;
  (defmethod ws:resource-client-disconnected ((res chat-server) ws-client
                                              &aux (client (find-client res ws-client)))
    (logit "Client ~S disconnected." client)
  
negative.code: 
  (defvar *websocket-server*)
  
  (defun register-chat-server (server)
    (ws:register-global-resource
     (resource-name server)
     (setf *websocket-server* server)
     (ws:origin-prefix (origin-prefix server))))
  
  (defgeneric origin-prefix (server))
  (defgeneric resource-name (server))
  (defgeneric add-client (chat-server client))
  (defgeneric remove-client (chat-server client))
  (defgeneric find-client (chat-server client))
  (defgeneric validate-client (chat-server client))
  (defgeneric disconnect-client (chat-server client))
  
  