cc: BUG-LISP at MIT-MC, BUG-LISPM at MIT-MC, MACSYMA-I at MIT-MC Well, what you have here is a special case; the functions you happen to be writing are doing something like translation. Why must DEFUN be modified just for one particular application? Use destructuring LET or something.