anchor.diff:  		 exp-sub
   		   #'((def vals)
   			    (when no-static
  -				  (error "static sublevel argument definition after ~A" no-static))
  +				  (err "static sublevel argument definition after ~A" no-static))
   				(and apply-values (not (consp (first vals)))
  -					 (error "sublist expected for argument ~A" num))
  -				(nconc (argument-expand2 (first def) (first vals) apply-values)
  +					 (err "sublist expected for argument ~A" num))
  +				(nconc (argument-expand2 fun (first def) (first vals) apply-values)
   					   (exp-main (cdr def) (cdr vals))))
   
   		 exp-check-too-many
              #'((def vals)
   			    (and (not def) vals
  -				     (error "too many arguments. ~A max, but ~A more given"
  +				     (err "too many arguments. ~A max, but ~A more given"
   						    (length argdefs) (length vals))))
   
   		 exp-main-non-key
  
positive.code: 		 check-val
  		   #'((vals)
  			    (and apply-values (endp vals)
  				     (error "argument ~A missing" num)))
  
  		 exp-static
  		   #'((def vals)
  			    (when no-static
  				  (error "static argument definition after ~A" no-static))
  				(check-val vals)
  				(cons (cons (first def) (first vals))
  					  (exp-main (cdr def) (cdr vals))))
  
negative.code: ;; When apply-values is NIL, only the expanded argument definition is
  ;; returned.
  
  (defun argument-expand2 (fun adef alst apply-values &optional no-static argdefs key-args num rest-arg)
    (with (err
  		   #'((msg &rest args)
  				(apply #'error
  					   (string-concat
  						 (format nil "Call of function ~A:~%" (symbol-name fun))
  						 (format nil "Argument definition: ~A~%" adef)
  						 (format nil "Given arguments: ~A~%" alst)
  						 msg)
  					   args))
  		 get-name
  		   #'((def)
  				(if (consp (first def))
  					(first (first def))
  