anchor.diff:      (stop-process process)))
   
   (defun run (program args &key input output error)
  +  (format T "~&> ~a ~{~a~^ ~}~&" program args)
     (with-resolved-stream (output)
       (with-resolved-stream (error)
         (let* ((process (external-program:start program args :output :stream :error :stream :input input))
  
positive.code: 
  (defun run-git (&rest cmdargs)
    (run
     "git" (mapcar #'shellify (remove NIL cmdargs))
     :output *git-output*
     :error *git-errors*
     :input *git-input*))
  
negative.code:          (loop for thing in (cdr args)
                 collect `((eql ,thing) ,(format NIL "~a~a=~(~a~)" prefix name thing))))
          (:arg
           `((T (list ,(format NIL "~a~a" prefix name) (shellify ,symbol)))))
          (:arg=
           `((T (format NIL ,(format NIL "~a~a=~~a" prefix name) (shellify ,symbol)))))
          (:arg.
           `((T (format NIL ,(format NIL "~a~a~~a" prefix name) (shellify ,symbol)))))
          (:map
           `((list (loop for (key val) in ,symbol
                         collect (format NIL ,(format NIL "~a~a ~~a~a~~a" prefix name (or (first options) "=")) (shellify key) (shellify val))))))
          (:flag
           (unless (or (assoc :arg options) (assoc :arg= options) (assoc :arg. options))
             `((T))))
  