anchor.diff:    "Define command line options. Arguments of this macro must be plists
   containing various parameters. Here we enumerate all allowed parameters:
   
  -:NAME - keyword that will be included in list returned by GET-OPTS function
  +:NAME -- keyword that will be included in list returned by GET-OPTS function
   if actual option is supplied by user.
   
  -:DESCRIPTION - description of the option (it will be used in DESCRIBE
  -command. This argument is optional, it's recommended to supply it.
  -
  -:SHORT - single character - short variant of the option. You may omit this
  +:DESCRIPTION -- description of the option (it will be used in DESCRIBE
  +command). This argument is optional, but it's recommended to supply it.
  +
  +:SHORT -- single character - short variant of the option. You may omit this
   argument if you supply :LONG variant of option.
   
  -:LONG - string, long variant of option. You may omit this argument if you
  +:LONG -- string, long variant of option. You may omit this argument if you
   supply :SHORT variant of option.
   
  -:ARG-PARSER - if actual option must take an argument, supply this argument,
  +:ARG-PARSER -- if actual option must take an argument, supply this argument,
   it must be a function that takes a string and parses it.
   
  -:META-VAR - if actual option requires an argument, this is how it will be
  +:META-VAR -- if actual option requires an argument, this is how it will be
   printed in option description."
     `(progn
        ,@(mapcar (lambda (args) (cons 'add-option args))
  
positive.code:                      (error 'missing-arg
                              :option poption-raw)
                     (use-value (value)
                       (push-arg value))
                     (skip-option ()
                       (setf poption-name nil))))
                  ((optionp item)
  
negative.code:                       (char/= #\- (char arg 1)))
                   (mapcar (lambda (c) (format nil "-~c" c))
                           (cdr (coerce arg 'list)))
                   (list arg)))
             (split-on-= (arg)
               (if (and (char= #\- (char arg 0))
                        (char/= #\= (char arg 1)))
                   (let ((pos (position #\= arg :test #'char=)))
                     (if pos
                         (list (subseq arg 0 pos)
                               (subseq arg (1+ pos) (length arg)))
                         (list arg)))
                   (list arg)))
             (shortp (opt)
               (and (= (length opt) 2)
  