An annotation that may occur multiple times at a given program element, and only on certain program elemenets.

A sequenced annotation is declared simply by having the annotation class satisfy `SequencedAnnotation` instead of `Annotation`. For example the following would only be allowed on `class` declarations, functions or methods:

    alias ExecutableDeclaration
           => ClassOrInterfaceDeclaration|FunctionDeclaration;
    "Documents a pattern in which the annotated element
     particpates."
    shared final annotation class Pattern(String name)
            satisfies SequencedAnnotation<Pattern, ExecutableDeclaration> {}

At runtime a `Declaration` instance can be queried for its `SequencedAnnotation`s of a certain type using `annotations()` or `sequencedAnnotations()`.

See also `Annotation`

no type hierarchy

- `SequencedAnnotation`
  - `ConstrainedAnnotation`
    - `Annotation`

- `SequencedAnnotation` of
  - `SeeAnnotation`
  - `ServiceAnnotation`
  - `ThrownExceptionAnnotation`

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`

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