public static void Main()
var a = new AnotherClass<ClassC>();
var c = new AmazingClass<InterfaceC>();
Console.WriteLine("Worked");
class AmazingClass<T> where T : InterfaceA {}
class AnotherClass<T> where T: ClassA {}
interface InterfaceC : InterfaceA{}