anchor.diff:  		   #'((def vals)
   				(exp-check-too-many def vals)
   				(?
  -				  (argument-keyword? def.)    (exp-optional-rest def vals)
  -				  (not (argument-name? def.)) (exp-sub def vals)
  +				  (argument-keyword? def.)     (exp-optional-rest def vals)
  +				  (not (argument-name? def.))  (exp-sub def vals)
   				  (exp-static def vals)))
   
            exp-main
  
positive.code: 		  '((a . 23) (b . 2) (c . 3) (d . 42))))
    t)
  
  (define-test "argument expansion can handle &OPTIONAL keyword without :apply-values"
    ((equal (argument-expand-names 'test '(a b &optional c d))
  		  '(a b c d)))
    t)
  
negative.code: 
           exp-optional-rest
  		   #'((def vals)
  		        (case def. :test #'eq
  				  '&rest     (exp-rest def vals)
  				  '&body     (exp-rest def vals)
  				  '&optional (exp-optional .def vals)))
  