Given a method using the "simple" syntax, wouldn't the ambiguity complained about disappear by making .invoke() mandatory? I still am a believer that function types should be treated like an object. It's almost akin to strongly-typed reflection. void somemethod(int(int) a) { a.invoke(2); }