class Test<A,B> { public void Foo<V,W> (Test<A,W> x, Test<V,B> y) { } } class X { public static void Main () { Test<float,int> test = new Test<float,int> (); test.Foo (test, test); } }