There is more going on here than just semantic sugar.`->` has a higher precedence for consuming the following block.

Note the difference in this IRB dump:

```
2.0.0p195 :007?>def foo(method=nil, &block)
2.0.0p195 :008?>   puts "method:"
2.0.0p195 :009?>   method.call if method
2.0.0p195 :010?>   puts "block:"
2.0.0p195 :011?>   block.call if block
2.0.0p195 :012?>   end
 => nil
2.0.0p195 :013 > foo -> do
2.0.0p195 :014 >     puts "bob"
2.0.0p195 :015?>   end
method:
bob
block:
 => nil
2.0.0p195 :016 > foo lambda do
2.0.0p195 :017 >     puts "bob"
2.0.0p195 :018?>   end
ArgumentError: tried to create Proc object without a block
	from (irb):16:in `lambda'
	from (irb):16
	from /Users/clautour/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>'
2.0.0p195 :019 > foo lambda {} do
2.0.0p195 :020 >     puts "bob"
2.0.0p195 :021?>   end
method:
block:
bob
 => nil
```

Where does this matter you say? `scope` is one place. Another are a shared example pattern I have been using in Vu, where you can pass nested tests to a SE.

```ruby
describe_its ['playlists'] do
  it_behaves_like "a json playlist collection", -> do
    describe_its ['songs'] do
      it_behaves_like "a json song collection"
    end
  end
end
```