anchor.diff:                    *loop-keywords*)
            x))
      args))
  +
  +(defun reduce-function-symbol (sym)
  +  (if (and (consp sym) (eq 'function (first sym)))
  +      (second sym)
  +      sym))
   
   (defun parse-ps-loop (terms)
     (let (prologue
  
positive.code:                      (setf terms (append equiv terms))
                       (clause)
                       (clause))))
                 (for-clause ()
                   (let* ((place (consume))
                          (var (when (atom place) place))
  
negative.code: 
  (defun complex-js-expr? (expr)
    (if (symbolp expr)
        (or (find #\. (symbol-name expr))
            (not (eq (ps-macroexpand expr) expr)))
        (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
      :count :minimize :maximize :into))
  
  (defun normalize-loop-keywords (args)
  