class Foo[T] { public this () { } public Hello ( t : T) : void { // We're boxing the type parameter `T' to an object here. Whatever (t); } public Whatever ( o : object) : void { System.Console.WriteLine (o.GetType ()); } } class X { static Test ( foo : Foo[int]) : void { foo.Hello (4); } static Main () : void { mutable foo = Foo (); Test (foo); } } /* BEGIN-OUTPUT System.Int32 END-OUTPUT */