Returns either the cached Future for the key or evaluates the given function which should lead to eventual completion of the promise.
Returns either the cached Future for the key or evaluates the given call-by-name argument
which produces either a value instance of type V
or a Future[V]
.