anchor.diff:                             message args)
     (alexandria:switch ((first args)
                          :test #'string-equal)
  +    ("join" (ww-join-command module message))
  +    ("leave" (ww-leave-command module message))
       ("start" (ww-start-command module message))
       ("list" (list-werewolf-players module (source message)))
       ("vote" (ww-vote-command module message (second args)))
       (t
  -     (reply-to message "Usage: .ww start|list|vote <nick>"))))
  +     (reply-to message "Usage: .ww join|start|list|vote <nick>"))))
positive.code: 
  ;; Werewolf - a game in IRC
  ;;
  ;; .ww start        - start a new werewolf game or join an existing one
  ;; .ww list         - lists players. if a werewolf, indicates side
  ;; .ww vote <nick>  - votes on a player to eliminate. only werewolves can vote at night
  ;;
  
negative.code:      (when (every 'vote-of (remove-if-not 'werewolf? (players-of module)))
         (start-werewolf-daytime module)))))
  
  (defun ww-join-command (module message)
    (cond
      ((not (eql (state-of module) 'unstarted))
       (reply-to message "The werewolf game is already underway."))
      ((find-ww-player module (source message))
       (reply-to message "You've already entered the werewolf game."))
      ((>= (length (players-of module))
           (max-players-of module))
       (reply-to message "Sorry, the werewolf game is full right now.~%"))
      (t
       (add-werewolf-player module (source message))
       (if (< (length (players-of module))
              (min-players-of module))
           (ww-msg-players module "~a has joined the werewolf game. (~a player~:p to go)"
                           (source message)
                           (- (min-players-of module) (length (players-of module))))
           (ww-msg-players module "~a has joined the werewolf game. Use .ww start to being playing."
                           (source message))))))
  
  (defun ww-leave-command (module message)
    (let ((player (find-ww-player module (source message))))
      (if player
          (remove-werewolf-player module player)
          (reply-to message "You're not in the werewolf game."))))
  
  (defun ww-start-command (module message)
    (cond
      ((null (find-ww-player module (source message)))
       (reply-to message "Only a werewolf player may start the game."))
      ((not (eql (state-of module) 'unstarted))
       (reply-to message "The werewolf game is already underway."))
      ((< (length (players-of module)) (min-players-of module))
       (reply-to message "There ~[are no players~;is only 1 player~:;are only ~a players~] and you need ~a for a game."
                 (length (players-of module))
                 (min-players-of module)))
      (t
       (start-werewolf-game module))))
  
  (defun ww-vote-command (module message target-nick)
    (let* ((player (find-ww-player module (source message)))
  