anchor.diff:  	      (channels msg) :test #'equal)
       t))
   
  +(defmethod print-object ((msg channel-message) stream)
  +  "Print channel-type object."
  +  (print-unreadable-object (msg stream :type t :identity t)
  +    (format stream "~a: NICK: '~a' HOST: '~a' CHANNEL: '~a' ARGS: '~a'"
  +            (date-fmt msg)
  +            (nick msg)
  +            (host msg)
  +            (channel msg)
  +            (args msg))))
  +
  +;; JOIN message
  +
   (defclass join-message (channel-message)
     ((channel
       :documentation "IRC channel which user joined.")))
  +
  +;; PRIVMSG message
   
   (defclass privmsg-message (channel-message)
     ((channel
  
positive.code:       (error 'logger-was-kicked
               :text ch))))
  
  (defmethod print-object ((msg irc-message) stream)
    "Print generic irc-message object."
    (print-unreadable-object (msg stream :type t :identity t)
      (format stream "~a: PREFIX: '~a' CMD: '~a' ARGS: (~{~a~^ ~})"
              (date-fmt msg)
              (prefix msg)
              (command msg)
              (args msg))))
  
  (defmethod print-object ((msg channel-message) stream)
    "Print channel-type object."
    (print-unreadable-object (msg stream :type t :identity t)
      (format stream "~a: NICK: '~a' HOST: '~a' CHANNEL: '~a' ARGS: '~a'"
              (date-fmt msg)
              (nick msg)
              (host msg)
              (channel msg)
              (args msg))))
  
  (defmethod print-object ((msg quit-message) stream)
    "Print QUIT object."
    (print-unreadable-object (msg stream :type t :identity t)
      (format stream "~a: NICK: '~a' HOST: '~a' CHANNELS: '~a' MSG: '~a'"
              (date-fmt msg)
              (nick msg)
              (host msg)
              (channels msg)
              (message msg))))
  
  (defmethod print-object ((msg privmsg-message) stream)
    "Print PRIVMSG object."
    (print-unreadable-object (msg stream :type t :identity t)
      (format stream "~a: NICK: '~a' HOST: '~a' CHANNEL: '~a' MSG: '~a'"
              (date-fmt msg)
              (nick msg)
              (host msg)
              (channel msg)
              (message msg))))
  
  (defmethod print-object ((msg action-message) stream)
    "Print PRIVMSG ACTION object."
    (print-unreadable-object (msg stream :type t :identity t)
      (format stream "~a: PREFIX: '~a' CHANNEL: '~a' ACTION: '~a'"
              (date-fmt msg)
              (prefix msg)
              (channel msg)
              (action msg))))
  
  (defmethod print-object ((msg kick-message) stream)
    "Print channel-type object."
    (print-unreadable-object (msg stream :type t :identity t)
  
negative.code: 
  (defmethod save-p ((msg quit-message)) t)
  
  (defmethod print-object ((msg quit-message) stream)
    "Print QUIT object."
    (print-unreadable-object (msg stream :type t :identity t)
      (format stream "~a: NICK: '~a' HOST: '~a' CHANNELS: '~a' MSG: '~a'"
              (date-fmt msg)
              (nick msg)
              (host msg)
              (channels msg)
              (message msg))))
  
  ;; Generic message with channel argument
  
  (defclass channel-message (irc-message)
    ((channel
      :initarg :channel
  