Say for example there's the following annotation provided by a library (acme-lib) that is in no way related to Groovy
You'd like to reuse this annotation to trigger a local AST transformation, problem is that the annotation's source must be changed to the following
Now acme-lib has a hard dependency on Groovy, and that's assuming you can even touch the code and recompile it. Say for the sake of example you'd like to "hijack" some of the JPA annotations, you can't simply push Groovy to whatever JSR controls JPA's codebase (extra points for inserting Boromir's meme here?
So what if we could write the following code instead