class Program
{
static void Main()
ISomething<A> x = new Something<A>();
ISomething<B> y = x;
}
interface ISomething<in T> { void Delete(T parameter); }
class Something<T> : ISomething<T> { public void Delete(T parameter) {} }
class A {}
class B : A {}