I use str to construct strings all the time:
user> (str '(1 2 3) " == " '(1 2 3))
"(1 2 3) == (1 2 3)"
and roughly once a day I get bitten on the ass by:
user> (str '(1 2 3) " == " (map identity '(1 2 3)))
"(1 2 3) == clojure.lang.LazySeq@7861"
I guess I can say:
user> (with-out-str (print '(1 2 3) " == " (map identity '(1 2 3))))
"(1 2 3) == (1 2 3)"
instead, but it seems ugly. Is there a better way?