anchor.diff:            ,@prologue
             ,@initially
             (do* ,init-step-forms
  -               ,end-test-forms
  +               ,end-test
               ,@(when first-time
                       `((when ,first-guard
                           ,@first-time
  
positive.code:                (next? (term)
                   (eq (next) term))
                 (err (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)))
  
negative.code:     :from :to :below :downto :above :by :in :across :index := :then :sum :collect))
  
  (defun normalize-loop-keywords (args)
    (mapcar
     (lambda (x)
       (or (find-if (lambda (key) (and (symbolp x) (equal (symbol-name x) (symbol-name key))))
                    *loop-keywords*)
           x))
     args))
  
  (defun parse-ps-loop (terms)
    (let (prologue
  