using System;

public class TheClass
{
	static void Foo<T> (T t, Func<T, T> f)
	{
		Func<Func<T>> d = () => {
			if (t != null) {
				return () => f (t);
			}
			
			return null;
		};
		d ();
	}
	
	public static void Main ()
	{
		Foo (1, null);
	}
}