&gt; The problem with your example is that evaluation of the expression performs a side effect on an internal machine specific to the implementation of Common Lisp, and that it is not a portable and abstract expression defining a return value.<p>I don&#x27;t get what you&#x27;re saying: REPLACE is bog-standard Common Lisp; it&#x27;s not implementation-specific. You complained that it&#x27;s not possible to produce a &#x27;flat binary array suitable for direct copying to output device memory&#x27;; I demonstrated that it is.<p>&gt; Ideally we would be able to define a return value as a variable length sequence of constituent elements<p>You can do that with &#x27;(simple-array unsigned-byte)…<p>Seriously, Common Lisp was built to be an industrial-strength language: it can bit-blit with the best of &#x27;em, as well as supporting high-level dynamic concepts. It&#x27;s pretty cool!