class C { foo(): T { return null } } interface I { bar(): T; } var c1: C; // error var i1: I; // error var c2: C; // should be an error var i2: I; // should be an error