code: public static <K, V> Function<K, V> asFunction(Map<K, ? extends V> map,
        Function<K, ? extends V> defaultFunction) {
      return new ForMapWithDefaultFunction<K, V>(map, defaultFunction);
    }
docs: Just like {@link com.google.common.base.Functions#forMap(Map, Object)} except it allows a
  potentially non-constant {@link Function} as the default.