anchor.diff:  
   ;;; base commands
   (defcommand echo ("(.*)" string)
  +  "Syntax: 'echo <string>' - Echoes back STRING."
     string)
  -(defcommand documentation ("(\\S+)" cmd-name)
  -  (let ((cmd (find-command *active-bot* cmd-name)))
  -    (if cmd 
  -	(dox cmd)
  -	(build-string "I don't know any command called ~A" cmd-name))))
  +(defcommand help ("(\\S+)" cmd-name)
  +  "Syntax: 'help [<cmd-name>]' - If cmd-name is provided, dumps the docstring for that command.~
  +otherwise, it dumps a generic help string."
  +  (if (<= 1 (length cmd-name))
  +      (let ((cmd (find-command *active-bot* cmd-name)))
  +	(if cmd 
  +	    (dox cmd)
  +	    (build-string "I don't know any command called ~A" cmd-name)))
  +      "Tell me 'help <cmd-name> for more information on a particular command."))
   (defcommand source ()
  +  "Syntax: 'source' - Dumps information about the bot's source code."
     "I'm licensed under the AGPL, you can find my source code at: http://github.com/zkat/sykobot")
   (defcommand version ()
  +  "Syntax: 'version' - Current version of sykobot."
     "Pfft. I have no versions. I'm 100% git")
  -(defcommand help ()
  -  "No.")
   (defcommand commands ()
  +  "Syntax: 'commands' - Lists all available commands"
     (build-string "Available commands are ~{~A~^ ~}"
                   (list-all-commands *bot*)))
   (defcommand topic ("(.*)" new-topic)
  +  "Syntax: 'topic [<new-topic>]' - If new-topic is provided, and the bot has topic-setting~
  +privileges, it sets the channel's topic. Otherwise, it dumps the current topic."
     (if (< 0 (length new-topic))
         (topic *bot* *channel* new-topic) ; Slightly broken
         (topic *bot* *channel*)))
  -(defcommand ping () "pong")
  -(defcommand hi () "Go away.")
  -(defcommand language () "I'm \"Lost In Stupid Parentheses\"")
  +(defcommand ping () 
  +  "Syntax: 'ping' - Pongs you."
  +  "pong")
  +(defcommand hi ()
  +  "This is undocumented. Fuck you. Don't care."
  +  "Go away.")
  +(defcommand language () 
  +  "Syntax: 'language' - Returns information about the bot's implementation language."
  +  "I'm \"Lost In Stupid Parentheses\"")
   
   ;;; Give is currently broken
   #+nil (defcommand give ("(\\S+) (\\S+) (.*)$" new-target new-command new-args)
  
positive.code: ;;   (cmd-msg (string-upcase input)))
  
  (defcommand singa ()
    (build-string
     "I love to singa~@
      about the moon-a and a june-a and a spring-a~@
      I love to singa"))
  
  (defcommand error ()
    (error "OH SHIT ERRORED! D:")
    "Uh oh")
  
  (defcommand translate ("(\\S+) (\\S+) (.*)" input-lang output-lang text)
    (if (and (= (length output-lang) 2)
             (or (= (length input-lang) 2)
                 (string= input-lang "*")))
  
negative.code: 
  ;;; BBS 
  (defcommand bbs ("(.*)" query)
    "Syntax: 'bbs <query> - Searches the Arch Linux BBS."
    (multiple-value-bind (title url)
        (bbs-search query)
      (build-string "~:[~;~A ~]<~A>" title title url)))
  