anchor.diff:  
   (defvar *expexsym-counter* 0)
   
  +(defstruct expex
  +  (function-collector #'identity))
  +
   ;; Returns newly created, unique symbol.
   (defun expex-sym ()
     (setf *expexsym-counter* (+ 1 *expexsym-counter*))
  
positive.code: 	`(cons ,(car args)
  		   ,(expex-argexpand-rest (cdr args)))))
  
  (defun expex-argexpand-do (fun args)
    (mapcar #'((x)
  			   (if (and (consp x)
  						(eq '&rest (car x)))
  
negative.code: ;; Check if an expression is expandable.
  ;;
  ;; Declines atoms and expressions with meta-forms.
  (defun expex-able? (ex x)
    (not (or (atom x)
             (in? (car x) 'get-slot '%funref 'vm-go 'vm-go-nil '%stack '%quote '%transpiler-string '%no-expex))))
  
  ;; Check if an expression has a return value.
  (defun expex-returnable? (ex x)
    (not (vm-jump? x)))
  
  (defun expex-make-return-value (ex e s)
    (with (b (butlast e)
  		 l (last e)
  		 la (car l))
     	(if (expex-returnable? ex la)
  		(append b (if (%setq? la)
  					  (if (%setqret? la)
  				          `((%setq ~%ret ,(third la)))
  