anchor.diff:  (defreply command-function ((bot (proto 'command-bot)) name)
     (or (let ((cmd (find-command bot name)))
   	(when cmd (cmd-function cmd)))
  -      (lambda (bot args sender channel)
  -	(declare (ignore bot args sender channel))
  -	(error (build-string "I don't know how to ~A"
  -			     name)))))
  +      (lambda ()
  +        (error (build-string "I don't know how to ~A" name)))))
   
   (defreply erase-all-commands ((bot (proto 'command-bot)))
     (clrhash (commands bot)))
  
positive.code:     `(add-command (proto 'command-bot) (symbol-name ',name)
  		  (defclone ((proto 'command))
  		      ((cmd-function
                          (lambda (*bot* *message* *sender* *channel*)
                            (declare (ignorable *message* *bot* *sender* *channel*))
                            ,@(if vars
                                  `((or (register-groups-bind ,vars (,regex *message*)
                                          ,@real-body)
  
negative.code: (defreply list-all-commands ((bot (proto 'command-bot)))
    (with-properties (commands) bot
      (hash-table-keys commands)))
  
  ;; A very convenient macro...
  (defmacro defcommand (name (&optional (regex "") &rest vars) &body body)
  