Declaration which can be annotated, such as:

- `NestableDeclaration`
- `Module`
- `Package`

You can query annotations that are placed on a given annotated declaration with:

no type hierarchy

- `AnnotatedDeclaration`
  - `Annotated`
  - `Declaration`

- `AnnotatedDeclaration` of
  - `Module`
  - `NestableDeclaration`
    - `AliasDeclaration`
    - `ClassOrInterfaceDeclaration`
      - `ClassDeclaration`
        - `ClassWithConstructorsDeclaration`
        - `ClassWithInitializerDeclaration`
      - `InterfaceDeclaration`
    - `ConstructorDeclaration`
      - `CallableConstructorDeclaration`
      - `ValueConstructorDeclaration`
    - `FunctionOrValueDeclaration`
      - `FunctionDeclaration`
      - `ValueDeclaration`
    - `SetterDeclaration`
    - `ValueDeclaration`
  - `Package`

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`
Attributes inherited from: `Declaration` `name`, `qualifiedName`

Methods
`annotations` | Source Code `shared formal Annotation[] annotations<out Annotation>() given Annotation satisfies AnnotationType` The annotation instances of the given annotation type on this declaration. For example, you can list all the SeeAnnotations annotations on List with the following code:
    for(annot in `interface List`.annotations<SeeAnnotation>()){
        for(elems in annot.programElements){
            print("See: ``elems``");
        }
    }
Alternatively, you can use the `annotations()` function.

Inherited Methods
Methods inherited from: `Object` `equals()`
Methods inherited from: `Annotated` `annotated()`