I am a bit confused about using macros like with-html. Let's say if I want to produce an html with my post parameter value in it. Just saying (:p (post-parameter "foo")) won't put the value in the <p> tag. 
<br>On the other hand saying (:p (format t "~a" (post-parameter "foo"))) or (:p (esc (post-parameter "foo"))) will produce the expected result. Same goes with <br>(:p<br>      (esc (with-output-to-string (s)
<br>                      (format s "~a" (post-parameter "foo")))))<br><br>My question is what's common about the latter examples that makes a printing possible? Does it mean that all printing within with-html should happen to *standard-output* and the esc function  redirects it to it?
<br><br>What package should I look at to have a better understanding of it?<br><br>Thank you!<br>Andrew<br>