anchor.diff:      (check-type description string)
       (check-type short       (or null character))
       (check-type long        (or null string))
  -;    (check-type arg-parser  list) ???
  +    (check-type arg-parser  function)
       (check-type meta-var    string)
       (push (make-instance 'option
                            :name        name
  
positive.code: be printed in option description"))
    (:documentation "representation of an option"))
  
  (defparameter *options* nil
    "list of all defined options")
  
  (defun add-option (&rest args)
    "Register an option."
    (let ((name        (getf args :name))
          (description (getf args :description "?"))
          (short       (getf args :short))
          (long        (getf args :long))
          (arg-parser  (getf args :arg-parser))
          (meta-var    (getf args :meta-var "ARG")))
      (unless (or short long)
        (error "at least one form of the option must be provided"))
  
negative.code:   ((name
      :initarg  :name
      :accessor name
      :documentation "keyword that will be included in list returned by
  GET-OPTS function if this option is given by user")
     (description
      :initarg  :description
      :accessor description
  