anchor.diff:                 (next? (term)
                    (eq (next) term))
                  (err (expected got)
  -                 (error "JS-LOOP expected ~s, got ~s." expected got))
  +                 (error "PS-LOOP expected ~s, got ~s." expected got))
                  (consume (&optional what)
                    (let ((term (pop terms)))
                      (when (and what (not (eq what term)))
  
positive.code:       (find #\. (symbol-name expr))
        (consp expr)))
  
  (defvar *loop-clauses* '(:for :do :when :unless :initially :finally :first-time :last-time :while :until))
  (defvar *loop-keywords*
    (append *loop-clauses* '(:from :to :below :downto :above :by :in :across :index := :then :sum :into)))
  
  (defun normalize-loop-keywords (args)
    (mapcar (lambda (x)
  
negative.code:                 x))
            args))
  
  (defun parse-ps-loop (terms)
    (let (prologue
          init-step-forms end-test-forms
          initially finally
          first-time last-time
          accum-var accum-kind
          body)
      (macrolet ((with-local-var ((name expr) &body body)
                   (once-only (expr)
  