Thanks for the code -- it has one small bug: (let* ((length (gensym)) (size (gensym))) `(let* ((,length (length ,lisp-array)) (,size (* ,length 8))) (The inner let should be let*). It's too bad I have to copy the array since it can be large.