anchor.diff:  ;;
   ;; Rejects atoms and expressions with meta-forms.
   (defun expex-able? (ex x)
  -  (not (or (atom x)
  -		   (function-ref-expr? x)
  -           (in? x. '%%vm-go '%%vm-go-nil
  -				   '%transpiler-native '%transpiler-string
  -				   '%quote))))
  +  (or (and (expex-move-lexicals? ex)
  +           (symbol? x)
  +           (not (funinfo-in-args-or-env? *expex-funinfo* x)))
  +      (not (or (atom x)
  +		       (function-ref-expr? x)
  +               (in? x. '%%vm-go '%%vm-go-nil '%transpiler-native '%transpiler-string '%quote)))))
   
   ;; Check if an expression has a return value.
   (defun expex-returnable? (ex x)
  
positive.code:     (values (apply #'append moved)
              `((%%vm-go-nil ,@new-expr ,..x.)))))
  
  ;; Expand expression depending on type.
  ;;
  ;; Recurses into LAMBDA-expressions and VM-SCOPEs.
  ;; Removes VM-SCOPEs.
  (defun expex-expr (ex expr)
    (let x (if (named-lambda? expr)
  		     expr
  			 (expex-guest-filter-expr ex expr))
      (expex-cps x)
  
negative.code: 
  ;;;; EXPRESSION EXPANSION
  
  (defun expex-expr-std (ex x)
    (with ((moved new-expr) (expex-move-args ex (expex-argexpand ex x)))
      (values moved (list new-expr))))
  
  (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)
      (values nil
  