interface IFoo<out T> { } struct S : IFoo<string> { } public class Test { public static int Main () { S s = new S (); IFoo<object> o = s; return 0; } }