anchor.diff:  
   (defmethod init ((client tcp-client))
     (format client "~&Hello. Welcome to Sykosomatic.~%")
  -  (login client))
  +  (maybe-login client))
   
   (defmethod update ((client tcp-client))
  -  nil)
  +  (let ((k (client-continuation client)))
  +    (if k
  +        (progn (setf (client-continuation client) nil)
  +               (funcall k (last-input client)))
  +        (funcall (client-main client)))))
   
   (defmethod teardown ((client tcp-client))
     (close client :abort t)
  
positive.code:                  (string-trim '(#\Space #\Tab #\Newline #\Return)
                                string)))
  
  (defun login (client)
    (format client "~&Username: ")
    (setf (input-handler client)
          (let ((state :username)
                (username nil))
            (lambda (input &aux (input (string-cleanup input)))
              (ecase state
                (:username
                 (setf username input)
                 (if (account-exists-p input)
                     (progn
                       (format client "~&Password: ")
                       (setf state :password))
                     (progn
                       (format client "~&No such account. Create? (Y/n) ")
                       (setf state :maybe-create-account))))
                (:maybe-create-account
                 (if (string-equal "n" input)
                     (progn
                       (format client "~&Goodbye!~%")
                       (disconnect client :close))
                     (create-account client username)))
                (:password
                 (let ((account (find-account username)))
                   (if (confirm-password account input)
                       (progn
                         (setf (soul client) (make-instance 'soul :account account :client client))
                         (format client "~&You are now logged in as ~A.~%" username)
                         (play-game client))
                       (progn
                         (format client "~&Wrong password.~%")
                         (format client "~&Username: ")
                         (setf username nil
                               state :username))))))))))
  
  (defparameter *password-salt* "sh00rizs4lt1")
  (defun hash-password (string)
  
negative.code: ;;;
  (defparameter *server-listen-ip* iolib:+ipv4-unspecified+)
  (defparameter *server-port* 4000)
  (defparameter *default-client-main* nil)
  
  ;;;
  ;;; TCP Clients
  ;;;
  (defclass tcp-client (client fundamental-character-output-stream
                               fundamental-character-input-stream)
    (#+nil(input-handler :initarg :input-handler :initform nil :accessor input-handler)
     (socket :accessor socket :initarg :socket
             :initform (error "Must provide a socket for this client."))
     (remote-name :accessor remote-name)
  