class Item
{
}

class ItemCollection<T> where T : Item
{
	public void Bind<U> (ItemCollection<U> sub) where U : T
	{
	}
}

class a
{
	public static void Main ()
	{
		var ic = new ItemCollection<Item> ();
		ic.Bind (ic);
	}
}