anchor.diff:        (or (find-server server)
             (error "Unknown server: ~S" (cadr server))))))
   
  -(defun argument-channel (sender channel)
  +(defun argument-channel (sender channel &optional server)
     (when-unwrap (channel channel (channel-name-p channel))
  -    (ensure-channel (server sender) channel)))
  +    (ensure-channel (or server (server sender)) channel)))
   
   (defun argument-nickname (nick)
     "Just a string for a new nickname."
  
positive.code: 
  (defun interpret (sender expression)
    (ecase (first expression)
      ((help)                (help               sender (second expression)))
      ((version)             (version            sender))
      ((uptime)              (uptime-cmd         sender))
      ((sources)             (sources            sender))
      ((query)               (query              sender (second expression)))
      ((connect)             (connect            sender (second expression) (third expression) (fourth expression)))
      ((disable)             (disable            sender (second expression)))
      ((enable)              (enable             sender (second expression)))
      ((list-servers)        (list-servers       sender))
      ((list-channels)       (list-channels      sender (second expression) (third expression)))
      ((list-users)          (list-users         sender (second expression)))
      ((identify)            (identify           sender (second expression)))
      ((register)            (register           sender (second expression) (third expression)))
      ((reset)               (reset              sender (second expression)))
      ((set-password)        (set-password       sender (second expression) (third expression) (fourth expression)))
      ((cancel-log-channel)  (cancel-log-channel sender (second expression) (third expression)))
      ((cancel-log-id)       (cancel-log-id      sender (second expression)))
      ((log-request)         (log-request        sender (second expression) (third expression) (fourth expression) (fifth expression)))))
  
  
  
  
negative.code:        (reset (nick "pjb")))
        ("set password pjb 321545623f new-secret-password"
         (set-password (nick "pjb") (key "321545623f") (password "new-secret-password")))
        
        ("list users"
         (list-users nil))
        ("list users on irc.freenode.org"
         (list-users (server "irc.freenode.org")))
        ("list servers"
         (list-servers))
  
        ;;
        ("list     my log requests"
         (list-log-requests nil nil nil nil))                                
        ("list     my log requests for channel #lisp"
         (list-log-requests nil nil (channel "#lisp") nil))              
        ("list all my log requests"
         (list-log-requests nil nil nil nil))                                
  
        ("list all    log requests of mr foo"
         (list-log-requests t (nick "foo") (channel "#lisp") nil))                      
        ("list all    log requests of mr foo for channel #lisp"
         (list-log-requests t (nick "foo") (channel "#lisp") nil))    
        ("list all    log requests           for channel #lisp"
         (list-log-requests t nil (channel "#lisp") nil))    
        ("list all    log requests"
         (list-log-requests t nil (channel "#lisp") nil))                                
  
        ("list all    log requests of mr foo  on server irc.freenode.org"
         (list-log-requests t (nick "foo") (channel "#lisp") (server "irc.freenode.org")))                      
        ("list all    log requests of mr foo for channel #lisp  on server irc.freenode.org"
         (list-log-requests t (nick "foo") (channel "#lisp") (server "irc.freenode.org")))    
        ("list all    log requests           for channel #lisp  on server irc.freenode.org"
         (list-log-requests t nil (channel "#lisp") (server "irc.freenode.org")))    
        ("list all    log requests on server irc.freenode.org"
         (list-log-requests t nil (channel "#lisp") (server "irc.freenode.org")))                                
        
        ("list all channel logs on server irc.freenode.org"
         (list-log-requests t nil nil (server "irc.freenode.org")))
        ("list all channels"
         (list-log-requests t nil nil nil))
        ("list all logs on irc.freenode.org"
         (list-log-requests t nil nil (server "irc.freenode.org")))
        ("list all logs"
         (list-log-requests t nil nil nil))
        
        ;;
        ("cancel     my log requests"
         (cancel-log-requests nil nil nil nil))                                
        ("cancel     my log requests for channel #lisp"
         (cancel-log-requests nil nil (channel "#lisp") nil))              
        ("cancel all my log requests"
         (cancel-log-requests nil nil nil nil))                                
  
        ("cancel all    log requests of mr foo"
         (cancel-log-requests t (nick "foo") (channel "#lisp") nil))                      
        ("cancel all    log requests of mr foo for channel #lisp"
         (cancel-log-requests t (nick "foo") (channel "#lisp") nil))    
        ("cancel all    log requests           for channel #lisp"
         (cancel-log-requests t nil (channel "#lisp") nil))    
        ("cancel all    log requests"
         (cancel-log-requests t nil (channel "#lisp") nil))                                
  
        ("cancel all    log requests of mr foo  on server irc.freenode.org"
         (cancel-log-requests t (nick "foo") (channel "#lisp") (server "irc.freenode.org")))                      
        ("cancel all    log requests of mr foo for channel #lisp  on server irc.freenode.org"
         (cancel-log-requests t (nick "foo") (channel "#lisp") (server "irc.freenode.org")))    
        ("cancel all    log requests           for channel #lisp  on server irc.freenode.org"
         (cancel-log-requests t nil (channel "#lisp") (server "irc.freenode.org")))    
        ("cancel all    log requests on server irc.freenode.org"
         (cancel-log-requests t nil (channel "#lisp") (server "irc.freenode.org")))                                
        
        ("cancel all channel logs on server irc.freenode.org"
         (cancel-log-requests t nil nil (server "irc.freenode.org")))
        ("cancel all channels"
         (cancel-log-requests t nil nil nil))
        ("cancel all logs on irc.freenode.org"
         (cancel-log-requests t nil nil (server "irc.freenode.org")))
        ("cancel all logs"
         (cancel-log-requests t nil nil nil))
        ;;
        ("cancel all log request on channel #lisp on server irc.freenode.org"
         (cancel-log-requests t nil (channel "#lisp") (server "irc.freenode.org")))
        ("cancel all log request on channel #lisp"
         (cancel-log-requests t nil (channel "#lisp") nil))
        ("cancel all #lisp on irc.freenode.org"
         (cancel-log-requests t nil (channel "#lisp") (server "irc.freenode.org")))
        ("cancel all #lisp"
         (cancel-log-requests t nil (channel "#lisp") nil))
        ;;
        ("cancel log 42"
         (cancel-log-id (id "42")))
        ;;
        ("log channel #lisp on server irc.freenode.org                 to 2016-02-28"
         (log-request (channel "#lisp") (server "irc.freenode.org") nil (date "2016-02-28")))
        ("log channel #lisp on server irc.freenode.org from 2016-03-01 to 2016-03-31"
  