anchor.diff:                (ast `(progn ,lhs ,rhs ',value) form))))))))
   
   (defmethod simp-form ((form ast-call))
  -  (simp-form-list (arguments form))
  +  ;; Simplify arguments.
  +  (do ((i (arguments form) (cdr i)))
  +      ((endp i))
  +    (setf (car i) (simp-form (hoist-the-form-to-edge (car i)))))
     (cond ((eql (name form) 'eql)
            (simp-eql form))
           ((eql (name form) 'ash)
  
positive.code:                                              (t nil))))
                                     (bindings form)))
    (dolist (b (bindings form))
      (setf (second b) (simp-form (second b))))
    (setf (body form) (simp-form (body form)))
    ;; Rewrite (let (... (foo ([progn,let] x y)) ...) ...) to (let (...) ([progn,let] x (let ((foo y) ...) ...))) when possible.
    (when (not (let-binds-special-variable-p form))
  
negative.code:   form)
  
  (defun simp-ash (form)
    (cond ((and (eql (list-length (arguments form)) 2)
                (or (and (typep (second (arguments form)) 'ast-the)
                         (match-optimize-settings form '((= safety 0) (= speed 3)))
  