anchor.diff:  (defun expex-force-%setq (ex x)
     (or (when (metacode-expression-only x)
           (list x))
  -	  (expex-guest-filter-setter ex `(%setq ~%ret ,(peel-identity x)))))
  +	  (expex-make-%setq ex '~%ret x)))
   
   (defun expex-make-setq-copy (ex x s)
  -  (if (eq s (second x.))
  -      x
  -      `(,x.
  -	    ,@(expex-guest-filter-setter ex `(%setq ,s ,(second x.))))))
  +  (? (eq s (second x.))
  +     x
  +     `(,x.
  +	   ,@(expex-make-%setq ex s (second x.)))))
   
   (defun expex-make-return-value (ex s x)
     (let last (last x)
  
positive.code: 
  (defun expex-expr-setq (ex x)
    (with ((moved new-expr) (expex-move-args ex ..x))
  	(values moved (expex-guest-filter-setter ex `(%setq ,.x. ,@new-expr)))))
  
  (defun expex-lambda (ex x)
    (with-temporary *expex-funinfo* (get-lambda-funinfo x)
  
negative.code: 					(if (eq s (second last.))
  				        (expex-guest-filter-setter ex last.)
  						(expex-make-setq-copy ex last s))
  				    (expex-make-%setq ex s last.)))
  		x)))
  
  (defun expex-atom-to-identity-expr (x)
    (? (and (atom x)
  	      (not (number? x)))
  	 `(identity ,x)
  	 x))
  
  (defun expex-save-atoms (x)
    (mapcar #'expex-atom-to-identity-expr x))
  
  (defun expex-list (ex x)
    (mapcan (fn with ((moved new-expr) (expex-expr ex _))
                 (append moved (mapcan (fn expex-force-%setq ex _) new-expr)))
            x))
  
  (defun expex-body (ex x &optional (s '~%ret))
    (expex-make-return-value ex s (expex-list ex (expex-save-atoms (list-without-noargs-tag x)))))
  