You would need a homoiconic language, i.e. manipulate code as if it’s data (gross simplification). Not many languages are such. For example, Elixir is not, and LISP is.
It’s not easy to have a context-aware program that rewrites another program. Furthermore, Elixir also doesn’t have a standard – but IMO that’s not a problem because the generated AST by the compiler is fairly stable.
I’d love working on something like this but alas, no free time and energy in the last 2 years.






















