anchor.diff:  		  (funcall walk (first (ast-args node)) :parent parent))
   
   		 (t (post-process-node node walk parent)))))
  -
  -      (values (copy-code code :node-tree (walk-ast #'walk-node code
  -						   :include-parent t))
  -	      env))))
  +      (let ((ast (walk-ast #'walk-node (code post-proc-obj)
  +			   :include-parent t)))
  +	(setf (code post-proc-obj) (copy-code (code post-proc-obj)
  +					      :node-tree ast)
  +	      (slot-value post-proc-obj 'ast) ast))
  +
  +      post-proc-obj)))
   
   ;;----------------------------------------------------------------------
   
  
positive.code: 
  ;;----------------------------------------------------------------------
  
  (defun post-process-ast (code env)
    (declare (optimize (debug 3) (speed 0)))
    (let ((flow-origin-map (make-hash-table))
  	(val-origin-map (make-hash-table))
  
negative.code:     (labels ((uniform-raw (val)
  	       (slot-value (first (ids (first (listify (flow-ids val)))))
  			   'val)))
        (let ((env (%get-base-env (env post-proc-obj))))
  	(loop :for (name % %1) :in (v-uniforms env) :do
  	   (let ((key (uniform-raw (get-var name env)))
  		 (val (vector :uniform name)))
  