interface Foo<S>
{
	void Hello (S s);
}

interface Bar<T,U> : Foo<U>
{
	void Test (T t, U u);
}

class X
{
	static void Test (Bar<int,string> bar)
	{
		bar.Hello ("Test");
		bar.Test (7, "Hello");
	}

	static void Main ()
	{ }
}
