public interface IFoo[T] { } public class Foo : IFoo[string] { } public class Hello { public World[U] ( _u : U, _foo : IFoo[U]) : void { } public World[V] ( _foo : IFoo[V]) : void { } public Test ( foo : Foo) : void { World ("Canada", foo); World (foo); } } class X { static Main () : void { } } /* BEGIN-OUTPUT END-OUTPUT */