Note that the api surface is that of a Cache<K, V>, but this is using a LazyDeferred<V>. This allows all "loader" operations to be light-weight and non-recursive.
Cache<K, V>
LazyDeferred<V>