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`
      - `InterfaceDeclaration`
    - `FunctionOrValueDeclaration`
      - `FunctionDeclaration`
      - `ValueDeclaration`
    - `SetterDeclaration`
  - `Package`

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

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

Inherited Methods
Methods inherited from: `Object` `Object.equals()`