class A{
 interface A<T>{}
 class MyGenericClass1<T> implements A<T>{}
 class MyGenericClass2<T> implements A<T>{}
 class MyGenericClass3<T> implements A<T>{}

 {
   A<String> a = new MyGenericClass2<String>();<caret>
 }
}
