anchor.diff:                              (seq "to" date :action `(nil ,date)))
                          :action $1)
                     :action `(log-request ,channel $4 ,@$5))
  -             
  -             (--> cancel-log
  -                  "cancel" (alt
  -                            (seq "all" (opt (alt "log" "logs"))
  -                                 (opt "on") (opt "channel") channel
  -                                 (opt "on" (opt "server") server :action server)
  -                                 :action `(cancel-log-channel ,channel ,$6))   
  -                            (seq "log" id
  -                                 :action `(cancel-log-id ,id)))
  -                  :action $2)
  -
   
                (--> help
                     "help" (opt (alt "query" "connect" "reconnect" "enable" "disable" "register" "identify"
  
positive.code:   `(let ((,nick (argument-old-user ,sender ,nick ,server)))
       ,@body))
  
  (defun list-channels (sender server user)
    ;; (list-channels (server "irc.freenode.org") (nick "pjb"))
    ;; (list-channels nil nil)
    (with-server (sender server)
      (with-user (sender user server)
        (if (has-user-credentials sender user)
            (let ((requests (requests user)))
              (if (endp requests)
                  (answer sender "~A has requested no logs." (name user))
                  (dolist (request (requests user))
                    (answer sender "~3D) ~15A ~A ~@[~A~]"
                            (id request)
                            (name (channel request))
                            (format-iso8601-time (start-date request))
                            (when (end-date request)
                              (format-iso8601-time (end-date request)))))))
            (answer sender "You are not authorized list the channels logged by the user ~A." (name user))))))
  
  (defun list-users (sender server)
    ;; (list-users (server "irc.freenode.org")) 
    ;; (list-users nil)
    (with-server (sender server)
      (dolist (user 
               (if  (has-server-credential sender server)
                    (mapcar (function pathname-name)
                            (directory (user-pathname :wild server)))
                    (progn (answer sender "You are not authorized to list the users other than you.")
                           (list (name sender)))))
        (let ((user (find-user server user)))
          (answer sender "~16A ~:[ ~;I~]~:[ ~;V~] ~@[~A~]"
                  (name user) (identified user) (verified user) (email user))))))
  
negative.code:                               (format *trace-output* "~&QUERY ~A -> ~A~%" sender message)
                                (query-processor server sender message))
          *logger*            (make-worker-thread botil-logger (server message)
                                (format *trace-output* "~&LOGGER ~A -> ~A~%" (irc:source message) message)
                                (logger server message))
          *command-processor* (make-worker-thread botil-command-processor (server sender message)
                                (format *trace-output* "~&COMMAND ~A -> ~A~%" sender message)
  