The type produced by generic configuration point must be the type declared in generic configuration annotation.
1. If we have the following generic configuration annotation:
then the related configuration points must produce beans with the same type:
2. If several generic beans have the same set of qualifiers, then
a) These generic beans should be marked as incorrect: "Several generic beans for the same generic type have the same set of qualifiers."
b) In ambiguous injection points related to those generic beans, this statement should be added to the standard statement.
3. If a bean is annotated with @GenericConfiguration(SomeType.class) where annotation type SomeType is not annotated with @GenericType, it is marked as incorrect "Annotation type mismatch: SomeType is not a generic configuration annotation.".
4. If a generic configuration annotation is annotated with @GenericType(SomeGenericBean.class), it is marked with as incorrect: "Generic configuration types may not be generic beans.".