According to the documentation, with-html-output-to-string can evaluate Lisp forms. In my experience, this is not the case.

(cl-who:with-html-output-to-string (*standard-output* nil :prologue nil :indent t)
 (:p (concatenate 'string "abc" "def")))

Should return

"<p>
   abcdef
</p>"

but it actually returns

"<p>
</p>"

Specs:
Cheers,
Andrew Pennebaker