| Annotation Type | Description | 
                            | ASTTest | This AST transformation aims at helping in debugging other AST transformations. | 
                            | AnnotationCollector | The AnnotationCollector can be used to define aliases for groups of 
 annotations. | 
                            | AutoClone | Class annotation used to assist in the creation of Cloneableclasses. | 
                            | AutoExternalize | Class annotation used to assist in the creation of Externalizableclasses. | 
                            | BaseScript | Variable annotation used for changing the base script class of the current script. | 
                            | Canonical | Class annotation used to assist in the creation of mutable classes. | 
                            | CompileDynamic | An annotation which is just a shortcut for @CompileStatic(TypeCheckingMode.SKIP). | 
                            | CompileStatic | This will let the Groovy compiler use compile time checks in the style of Java
 then perform static compilation, thus bypassing the Groovy meta object protocol. | 
                            | ConditionalInterrupt | Allows "interrupt-safe" executions of scripts by adding a custom check for interruption
 into loops (for, while, ...) and at the start of closures and methods. | 
                            | EqualsAndHashCode | Class annotation used to assist in creating appropriate equals()andhashCode()methods. | 
                            | ExternalizeMethods | Class annotation used to assist in the creation of Externalizableclasses. | 
                            | ExternalizeVerifier | Class annotation used to assist in the creation of Externalizableclasses. | 
                            | Field | Variable annotation used for changing the scope of a variable within a script from
 being within the run method of the script to being at the class level for the script. | 
                            | Immutable | Class annotation used to assist in the creation of immutable classes. | 
                            | IndexedProperty | Field annotation used with properties to provide an indexed getter and setter for the property. | 
                            | InheritConstructors | Class annotation to make constructors from a super class available in a sub class. | 
                            | Memoized | Method annotation that creates a cache for the results of the execution of the annotated method. | 
                            | NotYetImplemented | Method annotation used to invert test case results. | 
                            | PackageScope | Annotation used for turning off Groovy's auto visibility conventions. | 
                            | SelfType | This annotation can be added on a trait to declare the list of types that a class
 implementing that trait is supposed to extend. | 
                            | Sortable | A class annotation used to make a class Comparable by multiple Comparators. | 
                            | SourceURI | Variable annotation used for getting the URI of the current script. | 
                            | Synchronized | Method annotation to make a method call synchronized for concurrency handling
 with some useful baked-in conventions. | 
                            | TailRecursive | Method annotation used to transform methods with tail recursive calls into iterative methods automagically
 since the JVM cannot do this itself. | 
                            | ThreadInterrupt | Allows "interrupt-safe" executions of scripts by adding Thread.currentThread().isInterrupted()
 checks into loops (for, while) and at the start of closures and methods. | 
                            | TimedInterrupt | Allows safe timed executions of scripts by adding elapsed time checks into loops (for, while)
 and at the start of closures and methods and throwing an exception if a timeout occurs. | 
                            | ToString | Class annotation used to assist in the creation of toString()methods in classes. | 
                            | Trait | Used to mark a class as being a trait. | 
                            | TupleConstructor | Class annotation used to assist in the creation of tuple constructors in classes. | 
                            | TypeChecked | This will let the Groovy compiler use compile time checks in the style of Java. | 
                            | TypeChecked.TypeCheckingInfo | This annotation is added by TypeChecked:on methods which have type checking turned on.
 | 
                            | WithReadLock | This annotation is used in conjunction with WithWriteLock to support read and write synchronization on a method. | 
                            | WithWriteLock | This annotation is used in conjunction with WithReadLock to support read and write synchronization on a method. |