Ioke has an interesting macro system https://olabini.com/blog/2009/01/macro-types-in-ioke-or-what-is-a-dmacro/ (essentially f-exprs AFAICS. I've accidentally implemented f-exprs in the past)
miniblog.
Related Posts
ASTs typically discard comments, and that's usually what you want.
The only time (AFAICS) that preserving comments is useful is for writing a code formatter.
Could you write a formatter in terms of a list of lexemes? A CST is a non-trivial bit of code for one use case.
C : C++, Java : Scala/Kotlin, JS : TypeScript. There definitely seems to be space for languages that target the same platform.
AFAICS the success criteria are: great interoperability, similar toolset, similar syntax, and a more elaborate type system.
Are there counterexamples?
GitHub enables you to do a ton via the browser, but AFAICS there's no way to rebase a pull request you've opened against someone's repo.
This is really handy when upstream has fixed tests. I've used it in some $JOB environments and it saves a few precious clicks.