Using a symbol whose function cell is an array as argument to ASET works interpretively, but not compiled. (DEFUN ARRAY-BUG () (ARRAY AN-ARRAY T 1) (ASET 'ARRAY-ELEMENT 'AN-ARRAY 0) (PRINT (AREF 'AN-ARRAY 0))) The compiled version complains about a wrong type arg.