anchor.diff:      (cond
         ((string/= channel "#pounder")
          (reply-to message "This command only works in #pounder."))
  -      ((and (string-not-equal env-name "pol7")
  -            (string-not-equal env-name "pol9"))
  -       (reply-to message "You can only release pol7 or pol9"))
         ((null (gethash channel *channel-topics*))
          (reply-to message "I'm not clear on the topic just yet."))
         (t
  
positive.code:     (cond
        ((string/= channel "#pounder")
         (reply-to message "This command only works in #pounder."))
        ((and (string-not-equal env-name "pol7")
              (string-not-equal env-name "pol9"))
         (reply-to message "You can only take pol7 or pol9"))
        ((null (gethash channel *channel-topics*))
         (reply-to message "I'm not clear on the topic just yet."))
        (t
  
negative.code: (defvar *pounder-topic* nil)
  
  (defun userlist-from-topic (env topic)
    (let ((regex (ppcre:create-scanner (format nil "~a: ([\\w,]+)" env)
                                       :case-insensitive-mode t)))
      (ppcre:register-groups-bind (userlist)
          (regex topic)
        (unless (find userlist '("free" "idle" "busy") :test #'string-equal)
          (ppcre:split "\\s*,\\s*" userlist)))))
  
  (defun activity-from-topic (env topic)
    (let ((regex (ppcre:create-scanner (format nil "~a: [^(;|]+\\(([^)]+)\\)"
                                               env)
                                       :case-insensitive-mode t)))
      (ppcre:register-groups-bind (activity)
          (regex topic)
        activity)))
  
  (defun update-topic-with-userlist (env topic userlist activity)
    (let ((regex (ppcre:create-scanner (format nil "(~a): [^;|]+" env)
                                       :case-insensitive-mode t)))
      (ppcre:regex-replace-all regex topic
                               (format nil "\\1: ~a~@[ (~a)~]"
                                       (cond
                                         (userlist
                                          (format nil "~{~a~^,~}" userlist))
                                         (activity
                                          "busy")
                                         (t
                                          "free"))
                                       activity))))
  
  (defcommand take (message directp env-name &rest activity-list)
    (let ((channel (first (arguments message)))
  