Ruby1.9のProc#call呼び出し

RubyのProcは処理を実行するために #call を呼ばないとだめなんだけど、JavaScriptPythonみたく (args, ... ) で実行できた方が嬉しいとみんな思ってるはず。つまり

proc = lambda{|arg| do_something(arg)}
proc.call('hello')

じゃなくて

proc = lambda{|arg| do_something(arg)}
proc('hello')

こう書きたい。
で、思いだしたんだけど、Scalaは (args, ... ) をapplyメソッドの呼び出しと解釈するというルールでうまくいってるらしい。同じようにRubyでも変数に (args, ... ) がついてるときcallメソッドを呼ぶようにすればいい感じになるんじゃね?メソッドと変数は管理してるテーブルが違うから、パース時にどっちかわかるとか何かで読んだ気がするし・・・
よし、試しに作ってみよう、と思ってparse.yみてたら、なんと1.9にはそんな感じのがすでにありました。

      | primary_value '.' paren_args
          {
          /*%%%*/
              $$ = NEW_CALL($1, rb_intern("call"), $3);
              fixpos($$, $1);
          /*%
              $$ = dispatch3(call, $1, ripper_id2sym('.'),
                             ripper_intern("call"));
              $$ = method_optarg($$, $3);
          %*/
          }
proc = lambda{|msg| p "executed: #{msg}"}
proc.('hello') # => executed: hello

.(args, ... ) でProcを実行できるんすね。なるほど。
もしかしてこれ常識だったりするんだろうか。

・・・

proc = ->(msg){p "executed: #{msg}"}
proc.('hello')

って書いた方が1.9っぽい?