public interface IExtensible<T>
{
	void AddAll<U> (U item)
		where U : T;
}

public class ArrayList<T> : IExtensible<T>
{
        void IExtensible<T>.AddAll<U> (U item)
        { }
}

class X
{
	static void Main ()
	{ }
}
