anchor.diff:  (define-command (rules deactivate) (name &optional channel server) (:authorization T :documentation "Deactivate a rule for a channel.")
     (unless channel (setf channel (channel event)))
     (unless server (setf server (name (server event))))
  -  (let ((rule (gethash name (rules module))))
  +  (let ((rule (uc:config-tree :rules name)))
       (if rule
           (progn
             (setf (active-on rule)
  
positive.code: (define-group rules)
  
  (define-command (rules add) (name type &rest regex) (:authorization T :documentation "Add a new rule.")
    (if (gethash name (rules module))
        (respond event "A rule with that name already exists!")
        (progn
          (setf regex (format NIL "~{~a~^ ~}" regex)
                type (intern (string-upcase type) :KEYWORD))
          (assert (find type *types*) () "Type has to be one of ~{~a~^, ~}." *types*)
          (setf (gethash name (rules module))
                (make-instance
                 'rule :name name
                 :type type
  
negative.code:   (unless nick (setf nick (nick event)))
    (unless server (setf server (name (server event))))
    (pushnew (format NIL "~a/~a" (string-upcase server) (string-upcase nick))
             (uc:config-tree :whitelist) :test #'string-equal)
    (respond event "User ~a whitelisted!" nick))
  
  (define-command (rules blacklist) (&optional nick server) (:authorization T :documentation "Remove a user from the whitelist.")
    (unless nick (setf nick (nick event)))
    (unless server (setf server (name (server event))))
    (setf (uc:config-tree :whitelist)
          (delete (format NIL "~a/~a" (string-upcase server) (string-upcase nick))
                  (uc:config-tree :whitelist) :test #'string-equal))
    (respond event "User ~a removed from the whitelist!" nick))
  