It is a static error (err:XS1003) if an unescaped left curly bracket appears in a fixed part of a value template without a matching right curly bracket or if an unescaped right curly bracket appears in the fixed part of a value template.
while it earlier defined the value template as an "alternating sequence of fixed parts and variable parts".
Strictly speaking, a left curly bracket matched by a right curly bracket makes a variable part and as such can never "appear" in the fixed part.
Better wording (?) might be:
It is a static error (err:XS1003) if an unescaped left curly bracket appears in a value template without a matching right curly bracket or if an unescaped right curly bracket appears in the fixed part of a value template.
Section 2.10 Value Templates says:
while it earlier defined the value template as an "alternating sequence of fixed parts and variable parts".
Strictly speaking, a left curly bracket matched by a right curly bracket makes a variable part and as such can never "appear" in the fixed part.
Better wording (?) might be: