"Abstraction for models of elements which must be qualified
by an instance to order to be evaluated, including:
* [[Attribute]]s (a Qualified `Value`),
* [[Method]]s (a Qualified `Function`),
* [[MemberClass|member classes]] (a Qualified `Class`) and,
* [[MemberClassConstructor|member constructors]] (a constructor of a Qualified `Class`).
To qualify a `Qualified` metamodel instance in a type-safe way you
simply invoke it. Alternatively use [[bind]] if the qualifying instance's
type is unknown until runtime.
"
since("1.2.0")
shared sealed interface Qualified<out Kind=Anything, in Container=Nothing>
satisfies Kind(Container) {
"Type-unsafe container binding, to be used when the container type is unknown until runtime.
A null argument is only permitted for `static` members (which
have no container instance). In all other cases a non-null container is required.
This has the same behaviour as invoking this `Member` directly, but exchanges compile-time type
safety with runtime checks."
throws(`class IncompatibleTypeException`, "If the container is not assignable to this member's container")
shared formal Kind bind(Anything container);
}