So what's the advantage over using `{}.fetch(:key)` ? I tried using it and probably I'm missing something.

```ruby
[10] pry(main)> missing_key = proc {|k| raise KeyError,"key not found: #{k.inspect}"}
=> #<Proc:0x007ff4a358a468@(pry):10>
[11] pry(main)> key = {}.fetch(:key, missing_key)
=> #<Proc:0x007ff4a358a468@(pry):10>
[12] pry(main)> key.call
KeyError: key not found: nil
from (pry):10:in block in __pry__
[13] pry(main)> key = {}.fetch(:key)
KeyError: key not found: :key
from (pry):13:in `fetch'
```