anchor.diff:  
   ;;;; ARGUMENT EXPANSION
   
  +;; XXX this sucks blood out of stones. Should have proper macro expansion
  +;; instead.
  +(defun expex-convert-quotes (x)
  +  (mapcar (fn (if (quote? _)
  +				  `(%quote ,(second _))
  +				  _))
  +		  x))
  +
   ;; Expand arguments to function.
   (defun expex-argexpand-0 (ex fun args)
     (funcall (expex-function-collector ex) fun args)
  
positive.code: ;; XXX argument conversion by guest.
  (defun expex-expr-std (ex x)
    (with ((moved new-expr) (expex-move-args ex
  							  (cons x.
  									(expex-argexpand ex x. .x))))
      (values moved
  			(list new-expr))))
  
  
negative.code:         (argument-expand-compiled-values fun argdef args)
  	    args)))
  
  ;; Expand arguments if they are passed to a function.
  (defun expex-argexpand (ex x)
    (with (new? (%new? x)
  		 fun (if new?
  				 (second x)
  				 x.)
  		 args (if new?
  				  (cddr x)
  				  .x))
  	`(,@(when new? (list '%new))
  	  ,fun
      	  ,@(if (funcall (expex-function? ex) fun)
  	    	    (expex-convert-quotes
  		    	    (expex-argexpand-0 ex fun args))
  	    	    args))))
  
  ;;;;; ARGUMENT VALUE EXPANSION
  
  