public static <K, E> Collector<E, ImmutableSetMultimap.Builder<K, E>, ImmutableSetMultimap<K, E>> unorderedIndex(Function<? super E, K> keyFunction) {
    return unorderedIndex(keyFunction, Function.identity());
  }
@Test
  public void unorderedIndex_with_valueFunction_fails_if_value_function_returns_null() {
    assertThatThrownBy(() -> SINGLE_ELEMENT_LIST.stream().collect(unorderedIndex(MyObj::getId, s -> null)))
      .isInstanceOf(NullPointerException.class)
      .hasMessage("Value function can't return null");
  }