anchor.diff:    (print-unreadable-object (sll stream :type t)
       (format stream "~S" (unparse-shell-lambda-list sll))))
   
  +(defun parse-flags-and-options (flag-table option-table args)
  +  (loop :while args :do
  +     (let* ((next-arg (car args))
  +            (valid-option (and (not (zerop (length next-arg)))
  +                               (equal #\- (aref next-arg 0))))
  +            setter)
  +       (cond
  +         ((equal "--" next-arg)
  +          (pop args)
  +          (return))
  +
  +         ((and valid-option
  +               (setf setter (gethash next-arg flag-table)))
  +          (pop args)
  +          (funcall setter next-arg))
  +
  +         ((and valid-option
  +               (setf setter (gethash next-arg option-table)))
  +          (pop args)
  +          (let ((option-arg (pop args)))
  +            (unless option-arg
  +              (error 'command-error :message (format nil "Option ~A requires an argument" next-arg)))
  +            (funcall setter option-arg)))
  +         (t
  +          (return)))))
  +  args)
  +
   (defmacro shell-lambda (shell-lambda-list &body body)
     "`lambda' with shell argument processing.
   
  
positive.code:   (:import-from :shcl/core/fork-exec #:run)
    (:export
     #:define-builtin #:define-special-builtin #:lookup-command
     #:command-error #:wrap-errors #:invoke-command #:shell-lambda)
    (:documentation
     "This package contains functionality related to defining and
  running shell commands."))
  
negative.code:                          (ensure-unique-flag (concatenate 'string "--" (string-downcase (symbol-name arg)))))
                   flag))
                 ((consp arg)
                  (destructuring-bind (variable &rest flag-strings) arg
                    (check-type variable symbol)
                    (ensure-unique-variable variable)
                    (unless flag-strings
                      (error "At least one flag string must be provided"))
                    (dolist (flag-string flag-strings)
                      (unless (valid-flag-sigil-p flag-string nil)
                        (error "Flag argument sigils must be a string, start with -, and contain a character other than -"))
                      (ensure-unique-flag flag-string))
                    (vector-push-extend (coerce arg 'vector) flag)))
                 (t
                  (error "Malformed flag argument, got: ~A" arg))))
             (&option (arg)
  