anchor.diff:    (irc::remove-hooks conn 'irc::irc-part-message)
     (irc::remove-hooks conn 'irc::irc-rpl_endofmotd-message)
     (add-hook conn 'irc::irc-privmsg-message 'msg-hook)
  +  (add-hook conn 'irc::irc-quit-message 'irc::default-hook)
  +  (add-hook conn 'irc::irc-part-message 'irc::default-hook)
     (add-hook conn 'irc::irc-quit-message 'quit-hook)
     (add-hook conn 'irc::irc-part-message 'part-hook)
     (add-hook conn 'irc::irc-rpl_endofmotd-message 'connected-hook)
  
positive.code: (defvar *last-said* (make-hash-table :test 'equalp))
  (defvar *quiet* nil)
  (defvar *admin-users* nil)
  (defparameter *autojoin-channels* '("#ars" "#pounder" "#restools" "#deploys"))
  (defparameter *serious-channels* '("#deploys"))
  
  
negative.code:     (loop
         (handler-case
             (let ((conn (cl-irc:connect
                          :nickname nickname
                          :server host
                          :username username
                          :realname realname
                          :password (getf (authentication-credentials host) :password)
                          :port port
                          :connection-security security)))
               (shuffle-hooks conn)
               (handler-bind
                   ((irc:no-such-reply
                     #'(lambda (c)
                         (declare (ignore c))
                         (invoke-restart 'continue))))
                 (irc::read-message-loop conn))
               (close (irc:network-stream conn) :abort t))
           (usocket:connection-refused-error
               nil))
         (sleep 10))))
  
  (defun start-process (function name)
    "Trivial wrapper around implementation thread functions."
    (declare (ignorable name))
    #+allegro (mp:process-run-function name function)
    #+cmu (mp:make-process function :name name)
  