11 class A<T> : IIn<T>, IOut<T>
17 public static int Main ()
19 IIn<string> a_string = new A<string> ();
20 IIn<object> a_object = new A<object> ();
22 if (!(a_string is IIn<string>))
25 if ((a_string is IIn<object>))
28 if (!(a_object is IIn<string>))
31 if (!(a_object is IIn<object>))
34 IOut<string> b_string = new A<string> ();
35 IOut<object> b_object = new A<object> ();
37 if (!(b_string is IOut<string>))
40 if (!(b_string is IOut<object>))
43 if (b_object is IOut<string>)
46 if (!(b_object is IOut<object>))
49 Console.WriteLine ("OK");