anchor.diff:      (error "No loops detected")))
   
   (defmacro shell-while (condition &body body)
  +  "As long as `condition' returns a truthy exit status, repeatedly
  +evaluate `body'."
     (let ((result (gensym "RESULT")))
       `(break-level
          (let ((,result (truthy-exit-info)))
  
positive.code:   (:import-from :bordeaux-threads)
    (:import-from :alexandria #:parse-body)
    (:export #:shell-pipeline #:shell-not #:& #:with-subshell #:shell-when
             #:shell-unless #:shell-if #:shell-while #:shell-for #:loop-break
             #:loop-continue #:shell-run))
  (in-package :shcl/core/shell-form)
  
  (optimization-settings)
  
negative.code:          ,result))))
  
  (defmacro shell-for ((variable word-seq) &body body)
    "Evaluate `body' with shell environment variable named `variable'
  bound to each string in `word-seq'.
  
  `variable' should be a string or a form that produces a string.  It is
  evaluated once.
  
  `word-seq' should be an object that can be iterated using `iterator'.
  The values produced by the iterator should be strings."
    (let ((result (gensym "RESULT"))
          (value (gensym "VALUE"))
          (var (gensym "VAR")))
      `(break-level
         (let ((,result (truthy-exit-info))
               (,var ,variable))
           (do-iterator (,value (iterator ,word-seq))
             (setf (env ,var) ,value)
             (setf ,result (continue-level ,@body)))
           ,result))))
  
  