anchor.diff:  			     nil)
   
                  (exp-optional-rest (def vals)
  -		         (case (car def)
  -				   &rest     (exp-rest def vals)
  -				   &body     (exp-rest def vals)
  -				   &optional (exp-optional (cdr def) vals)))
  +		         (alet (car def)
  +				   (?
  +                     (eq ! '&rest)     (exp-rest def vals)
  +                     (eq ! '&body)     (exp-rest def vals)
  +                     (eq ! '&optional) (exp-optional (cdr def) vals))))
   
   		       (exp-sub (def vals)
   			     (and no-static
  
positive.code:     (car defs)))
  
  (defun argument-expand-0 (fun adef alst apply-values? concatenate-sublists?)
    (let ((argdefs    a)
  	    (key-args   k)
  	    (num        0)
  	    (no-static  nil)
  	    (rest-arg   nil))
      (multiple-value-bind (a k) (make-&key-alist adef)
        (labels ((err (msg args)
  				 (error "; Call of function ~A: ~A~%; Argument definition: ~A~%; Given arguments: ~A~%"
                          (symbol-name fun)
  
negative.code: 
                 (exp-main (def vals)
  			     (setf num (+ 1 num))
  			     (? (keywordp (car vals))
  				    (exp-key def vals)
  				    (or (exp-check-too-many def vals)
  			            (and def
  