Are we are talking about the same thing?
'é' as Unicode.Scalar or
"é" as Unicode.Scalar in NFD, a compile time error would be exactly what I want. So maybe we are arguing about something we agree on? (In NFC, it is fine. The extra effort to switch to
Unicode.Scalar accepts responsibility for any Unicode mistakes.)
But I have been trying to talk about
'é' as Character vs
"é" as Character, where by asking for a
Character, the developer demonstrates that he does not care about its scalar representation (and may not even know it can have more than one). The second variant always succeeds and gives no unexpected behaviour (which is why your comment confuses me). The first variant may result in surprises in the future if NFD happens (if and only if
'x' syntax is defined as a scalar literal). Given that the two variants are virtually identical in intended functionality, I would prefer only the second, resilient variant be available insofar as it is possible to design that way.
Phrased in a completely different way: In a world where
'x' means a scalar literal, please make
'x' as Character just as discouraged as
'x' as String, because
Character is much more like a string than it is like a scalar. Is that really all that weird of a request?