public interface IFoo<T> where T : IFoo<T> { }
public interface IBaz<T> where T : IFoo<T> { }

class Foo : IFoo<Foo>
{ }

class X
{
	public static void Main ()
	{ }
}