anchor.diff:    (handler-bind ((nickname-already-in-use #'restart-change-nick)
                    (logger-was-kicked #'restart-kicked)
                    (message-parse-error #'restart-message-parse-error)
  -                 (stream-error #'restart-message-parse-error)
  +                 (stream-error #'restart-stream-error)
                    (logger-was-banned #'restart-banned)
                    (error #'restart-unknown-error))
       (loop do
  
positive.code:                       (when extra-commands
                          (loop for cmd in extra-commands
                               do (send-cmd stream cmd)))
                        (do ((line
                              (read-line stream nil)
                              (read-line stream nil)))
  
negative.code:   "Invoke CONTINUE restart on message parsing error."
    (if (and (slot-exists-p c 'raw) (slot-boundp c 'raw))
        (vom:error "Parse error: ~a, line: ~a" c (raw c))
        (vom:error "Parse error: ~a" c))
    (invoke-restart 'continue))
  
  (defun restart-stream-error (c)
    "Invoke RESTART-LOOP on stream error."
    (vom:error "Stream error: ~a" c)
    (sleep 10)
    (invoke-restart 'restart-loop))
  
  (defun restart-banned (c)
    "Do nothing when logger was banned."
  