M: quotation rewrite-literal? ( obj -- ? ) drop t ; M: quotation rewrite-element ( obj -- ) >array rewrite-sequence \ >quotation , ; ! Note, it's important *not* to add this: M: quotation local-rewrite* rewrite-element ; ! I.e. you want deep quotations to be affected by 'rewrite-element' but "top level" ones to be handled the way callables normally are.