anchor.diff:                      :while arguments
                       :do (setf arguments (call-option-function (pop arguments)
                                                                 arguments
  -                                                              undefined-argument)))
  +                                                              undefined-argument
  +                                                              case-sensitive)))
                     nil)
                    (default
                     (funcall default)))))
  
positive.code:                      argument is found in ARGUMENTS.  It should return
                       the new remaining list of arguments.
  ")
    (:method ((key string) arguments &optional undefined-argument)
      (let* ((funopt  (gethash key *options*)))
        (cond
          (funopt             (call-option-function funopt arguments undefined-argument))
          (undefined-argument (funcall undefined-argument key arguments))
          (t                  (error "Unknown option ~A ; try: ~A help" key (pname))))))
    (:method ((option option) arguments &optional undefined-argument)
      (declare (ignore undefined-argument))
      (funcall (option-function option) arguments)))
  
  
  
negative.code: 
  
  
  (defun parse-options (arguments &optional default undefined-argument (case-sensitive t))
    "
  DO:                 Parse the options in the ARGUMENTS list.
  DEFAULT:            Thunk called if ARGUMENTS is empty.
  