Not possible. By design. We want to avoid anything that goes and globally changes code, without a trace. You can hand roll, as in your current solution, but it will have pitfalls such as losing incremental compilation.
I would suggest taking a step back and discuss what you want to solve and try to find a way that would be considered idiomatic Elixir.
Sorry if this is not the answer you were looking for.