Since they modify the AST the correct place for the transformation is not the
macro expansion like today, but rather the erlang pass.
A note for people running git blame:
This transformation was done in the first place to correct the error that is
raised by `erlang:andalso/2` and `erlang:orelse/2` in case the first argument
is not a boolean. The rewrite changes it from `:badarg` into
`{:badbool, op, value}`. The inlining of both functions into a case would be
done anyway in the erlang compiler.