7 public static int Main ()
9 if (!Test_1 (new Derived ()))
12 if (!Test_2 (new S ()))
18 static bool Test_1<T> (Templated<T> template)
20 return template is Derived;
23 static bool Test_2<U> (IA<U> arg)
29 public abstract class Templated<T>
33 public class Derived : Templated<Derived>
37 public interface IA<T>
41 public struct S : IA<S>