anchor.diff:        (consp expr)))
   
   (defvar *loop-keywords*
  -  '(:for :do :when :unless :initially :finally :first-time :last-time :while :until
  -    :from :to :below :downto :above :by :in :across :on :index := :then :sum :collect
  +  '(:for :do :when :unless :initially :finally :while :until
  +    :from :to :below :downto :above :by :in :across :on := :then :sum :collect
       :count :minimize :maximize :into :repeat))
   
   (defun normalize-loop-keywords (args)
  
positive.code: 
  (defun for-in (var bindings state)
    (with-local-var (arr (eat state) state)
      (let ((index (or (eat state :if :index) (ps-gensym))))
        (push-tokens state `(,index :from 0 :below (length ,arr)
                                    ,var := (aref ,arr ,index)))
        (for-clause state)
  
negative.code:     (:maximize `(setf ,var (if (null ,var) ,term (max ,var ,term))))
      (:collect `((@ ,var :push) ,term))))
  
  (defun repeat-clause (state)
    (let ((index (ps-gensym)))
      (setf (tokens state) (append `(,index :from 0 :below ,(eat state)) (tokens state)))
  