On Nov 2, 2005, at 12:18 PM, mental / rydia.net wrote: > Try: > > def proxy(a) > if respond_to? :call > actual(->a) > else > actual(a) > end > end > > If we do this, -> ought to work on anything that understands :call. Now you are right back to where we started. You don't need any special new syntax or behavior : def proxy(a) if a.respond_to? :call actual(a.call) else actual(a) end end I guess you could argue that ->identifier is just syntactic sugar for identifier.call but it doesn't seem worth it to me--at least not in the same way that a[index] is useful sugar for a.[](index)