using System;
using System.Linq;
using System.Linq.Expressions;
public static class FuncTools
{
public static T Id<T>(this T t) { return t; }
}
public class Test
{
public static void SomeHigherOrderFunction(Expression<Func<int,int>> expr)
{
}
public static void Main()
{
// SomeHigherOrderFunction(FuncTools.Id);
SomeHigherOrderFunction(x => x);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLkxpbnEuRXhwcmVzc2lvbnM7CgpwdWJsaWMgc3RhdGljIGNsYXNzIEZ1bmNUb29scwp7CglwdWJsaWMgc3RhdGljIFQgSWQ8VD4odGhpcyBUIHQpIHsgcmV0dXJuIHQ7IH0KfQoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIFNvbWVIaWdoZXJPcmRlckZ1bmN0aW9uKEV4cHJlc3Npb248RnVuYzxpbnQsaW50Pj4gZXhwcikKCXsKCQkKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCS8vIFNvbWVIaWdoZXJPcmRlckZ1bmN0aW9uKEZ1bmNUb29scy5JZCk7CgkJU29tZUhpZ2hlck9yZGVyRnVuY3Rpb24oeCA9PiB4KTsKCX0KfQ==