CL printing doesn't observe the print variable print-quoted and always prints #'foo as (function foo). To reproduce, execute the following code (I used emacs -Q and IELM): (let ((quoted-stuff '('a #'b `(,c ,@d)))) (let ((print-quoted t)) (cl-prin1 quoted-stuff) (terpri) (prin1 quoted-stuff) (terpri)) (let ((print-quoted nil)) (cl-prin1 quoted-stuff) (terpri) (prin1 quoted-stuff) (terpri))) Results: ('a (function b) `(,c ,@d)) ('a #'b `(,c ,@d)) ('a (function b) `(,c ,@d)) ((quote a) (function b) (\` ((\, c) (\,@ d)))) I expect cl-prin1 and prin1 to do the same thing in this example. Here's a patch to make cl-prin1 behave like prin1: