anchor.diff:    (or (eq '%%no-argexp argdef)
   	  (funcall (expex-plain-arg-fun? ex) fun)))
   
  -(defun expex-argexpand-do (ex fun args)
  +(defun expex-argexpand-0 (ex fun args)
     (funcall (expex-function-collector ex) fun args)
     (let argdef (funcall (expex-function-arguments ex) fun)
       (if (expex-expandable-args? ex fun argdef)
  
positive.code: 
  (defun expex-argexpand (ex fun args)
    (if (funcall (expex-function? ex) fun)
  	  (expex-argexpand-do ex fun args)
  	  args))
  
  (defun expex-assignment-inline (ex x)
  
negative.code:   (with (argexp (expex-argexpand ex x. .x)
  		 (moved new-expr) (expex-args ex (cons x.
  											   argexp)))
      ;(expex-collect-variables ex new-expr)
      (values moved (list new-expr))))
  
  ;; Expand %SETQ expression.
  ;;
  ;; The place to set must not be expanded.
  (defun expex-expr-setq (ex x)
    ;(expex-collect-variables ex .x)
    (with ((moved replacement) (expex-args ex (cddr x)))
  	(values moved
  		    `((%setq ,(second x) ,@replacement)))))
  
  ;; Expand expression depending on type.
  