code: public static <T, C extends Collection<T>> Map<T, C> makeElementsToContainersMap(
        final Iterable<C> collections) {
      final ImmutableMap.Builder<T, C> ret = ImmutableMap.builder();
  
      for (final C collection : collections) {
        for (final T item : collection) {
          ret.put(item, collection);
        }
      }
  
      return ret.build();
    }
docs: Takes some collections and creates a map from their elements to which collections contain them.
  The Collections must be disjoint or an {@link java.lang.IllegalArgumentException} will be
  thrown.