code: private <K, V> LoadingCache<K, V> cacheFor(Function<K, V> fn) {
          return CacheBuilder.newBuilder().build(new CacheLoader<K, V>() {
              @Override
              public V load(K key) {
                  return fn.apply(key);
              }
          });
      }
docs: ----------------------------------------------------------------------------------------------------------------------