using System; public interface IA { void Foo (IA self); } public static class C { public static void Foo (this IA self) { self.Foo<int> (); } public static void Bar<U> (this IA self) { self.Foo<U> (); } public static void Foo<T> (this IA self) { } public static void Main () { } }