anchor.diff:         t))
   
   (define-simple-dispatcher graph-for #'graph-for-atom)
  -
  -(define-graph-for :when (env expression &rest dependencies)
  -  (when (evaluate-condition env expression)
  -    (graph-for* env dependencies)))
  -
  -(define-graph-for :cond (env &rest cond-expressions)
  -  (loop :for cond-expression :in cond-expressions
  -        :when (evaluate-condition env (car cond-expression))
  -        :do (return (graph-for env (cdr cond-expression)))))
   
   (defmethod graph-for ((env static-traversal) spec)
     (let* ((current-grains-r (traversed-grain-names-r env))
  
positive.code: ;; Allow graph-for to return a list of grains for :WHEN and :COND.
  (defun graph-for* (env specs)
    (remove-duplicates
     (mapcan #'(lambda (spec)
  	       (let ((grain (graph-for env spec)))
  		 (assert (or grain
  			     (equal :when (car spec))
  			     (equal :cond (car spec)))
  			 (spec)
  			 "Couldn't find grain for spec: ~S" spec)
  		 (if (not (listp grain))
  		     (list grain)
  		     grain)))
  	   (remove-duplicates specs :from-end t :test 'equal))
     :from-end t))
  
  
negative.code:         (graph-for env `(:image ,post-image-name))
          (make-phony-grain
           :name `(:build ,(fullname grain))
  	 :dependencies
  	 (progn (load-command-for*
  		 env (append (compile-dependencies grain) (load-dependencies grain)))
  		(traversed-dependencies env))))))
  
  (define-graph-for :image (env name)
    (cond
  