"a {b} c"
(template-str "a " b " c")
A

The abbreviation for template-str.

As far as the parser and printer are concerned, "x {y}" and (template-str "x " y) are exactly equivalent.

To be more specific: when parsing a string, { switches from parsing characters to parsing forms, and } switches back to parsing characters. The template string as a whole is terminated with ", as usual.

Curly braces can be escaped in a normal string literal using {{ or }}. In a raw string literal, curly braces are ignored, so they don't need to be escaped.

(let form '(template-str "hello, " planet))
(prn form) ; prints "hello, {planet}"
[]