It's the other way around. This is exactly so that you can cache nils, the behaviour is copied fro m `cache_get` that was already there. You're right that `fetch` could use `has_key?`, but the problem with that is that it won't work with anything but a cache that resides in Ruby-land. For example, in our deployment we use Memcached. That's why I chose to go with the original implementation.

Do you think it makes sense to split them and have a base this overrides so it can use `has_key?`? Or do you have any suggestion on a better way to solve the more generic problem?