There is no performance difference on Topaz for a block captured with `&block` vs. merely passed.

I believe (strongly), that checking for it's existence is in fact using the block in some way, and thus requires you to have it handy. You might argue that the same is true of `yield`, however I believe it's important to note that `block_given?` is just a method, you would *not* have access to this same thing if you tried to implement `block_given?` in Ruby, whereas `yield` is a piece of syntax, it's impossible to implement!