@joe @pcbeard @jrose i assumed sigils were type specifiers for the symbol and not coercion operators for quite a while. one difficulty i have is with good ideas that don't support user extension without forking the language (scala's unapply operation for extensible case matching was an epiphany to me).
if you go far enough with this you may eventually arrive at a stable HIR which makes the choice of concrete syntax an explicit decision. curiously scala 3 has this and in private tooling devs say it is terrible to write against compared to odersky's former protege eugene burmako's semanticdb. it does indeed allow the scala compiler itself to support multiple forms of concrete syntax but if the compiler is to take upon the role of tooling, it would be wise to separate this phase.
in the same way, the compiler should not integrate linear path traversal for library search into the rest of compilation (and certainly not for interpreters), but instead make this its own distinct phase generating an explicit mapping, which tooling can override. this is a general mechanism that can be observed for any command-line tool, where cli parsing tends to produce a serializable configuration that could alternately be deserialized as an explicit preprocessing phase.
i used to think a macro API was the key to multiple concrete syntaxes, but a macro API is itself a syntax, and i don't actually like most macro APIs (elisp has a destructuring one developed by a haskeller maintainer i do quite like). generating source code is also a sort of macro API, which is what coffeescript does. so if the language wants to do better than generating source code, it may as well entirely decouple source code from input.
arguably, this would seem to disparage syntax, and the value of language designers in crafting syntax like wall does. i believe that the design and craft of syntax is harmed when it runs into petty squabbles, or (more commonly) when it stops users from immediately upgrading to new versions. i also don't think a change in semantics should be signalled through a parsing error.