allow Callable passed to .withLock(..) to extend V