using System;

public delegate void Handler<T> (T t);

public static class X
{
        public static void Foo<T> (Handler<T> handler) {
                AsyncCallback d = delegate (IAsyncResult ar) {
                        Response<T> (handler);
                };
        }

        static void Response<T> (Handler<T> handler)
	{ }

	static void Test<T> (T t)
	{ }

	public static void Main ()
	{
		Foo<long> (Test);
	}
}