using System;
public class Program
{
public interface IFoo<out T>{
T Bar();
}
public class FooBase<T> : IFoo<T>
where T : new()
public T Bar() { return new T(); }
public class Foo<T> : FooBase<T>
public T Baz(T instance) { return new T(); }
public void Main()