// Important test: Type inference class Test[A,B] { public Foo[U] (_ : U) : void { } public Foo[V] (_ : array [V], _ : V) : void { } public Hello[V,W] (_ : V, _ : W, _ : Test[V,W]) : void { } public ArrayMethod[V] (params _args : array [V]) : void { } } class X { static Main () : void { mutable test = Test (); test.Foo ("Hello World"); test.Foo ( array[ 3, 4, 5 ], 9L); test.Hello (3.14F, 9, test); test.ArrayMethod (3.14F, ( 9 :> float) / 3); } } /* BEGIN-OUTPUT END-OUTPUT */