Abstraction over declarations which can be invoked, namely functions, methods and constructors

no type hierarchy

- `FunctionDeclaration`
  - `FunctionOrValueDeclaration`
    - `NestableDeclaration`
      - `AnnotatedDeclaration`
        - `Annotated`
        - `Declaration`
      - `TypedDeclaration`
  - `FunctionalDeclaration`
    - `GenericDeclaration`

no subtypes hierarchy

Inherited Attributes
Attributes inherited from: `Object` `hash`, `string`
Attributes inherited from: `Declaration` `name`, `qualifiedName`
Attributes inherited from: `FunctionOrValueDeclaration` `defaulted`, `parameter`, `variadic`
Attributes inherited from: `FunctionalDeclaration` `annotation`, `parameterDeclarations`
Attributes inherited from: `GenericDeclaration` `typeParameterDeclarations`
Attributes inherited from: `NestableDeclaration` `actual`, `container`, `containingModule`, `containingPackage`, `default`, `formal`, `shared`, `static`, `toplevel`
Attributes inherited from: `TypedDeclaration` `openType`

Methods
`apply` | Source Code `shared formal Function<Return,Arguments> apply<Return = Anything, Arguments = Nothing>(Type<Anything>* typeArguments) given Arguments satisfies Anything[]` Applies the given closed type arguments to this function declaration in order to obtain a function model. See this code sample for an example on how to use this. Refines `FunctionalDeclaration.apply`
`memberApply` | Source Code `shared formal Method<Container,Return,Arguments> memberApply<Container = Nothing, Return = Anything, Arguments = Nothing>(Type<Object> containerType, Type<Anything>* typeArguments) given Arguments satisfies Anything[]` Applies the given closed container type and type arguments to this method declaration in order to obtain a method model. See this code sample for an example on how to use this. Refines `FunctionalDeclaration.memberApply`

Inherited Methods
Methods inherited from: `Object` `equals()`
Methods inherited from: `Annotated` `annotated()`
Methods inherited from: `AnnotatedDeclaration` `annotations()`
Methods inherited from: `FunctionalDeclaration` `apply()`, `getParameterDeclaration()`, `invoke()`, `memberApply()`, `memberInvoke()`, `staticApply()`, `staticInvoke()`
Methods inherited from: `GenericDeclaration` `getTypeParameterDeclaration()`