Purity validation

If you want to know if a macro is a valid guard you can use Macro — Elixir v1.20.2 and then traverse the AST, checking if all the calls in that AST are guards themselves.

If you wish to know whether a function it pure it is a much more difficult task, one not possible with the Elixir compiler today.

What do you mean by this? The Elixir compiler does not know whether functions are pure or not.