docs: static DuplicateGroupedAndTyped countDuplicatesAndMaybeAddTypeInfoReturnObject(
        Iterable<?> itemsIterable, boolean addTypeInfo) {
      if (addTypeInfo) {
        Collection<?> items = iterableToCollection(itemsIterable);
        Optional<String> homogeneousTypeName = getHomogeneousTypeName(items);
  
        NonHashingMultiset<?> valuesWithCountsAndMaybeTypes =
            homogeneousTypeName.isPresent()
                ? countDuplicatesToMultiset(items)
                : countDuplicatesToMultiset(addTypeInfoToEveryItem(items));
        return new DuplicateGroupedAndTyped(valuesWithCountsAndMaybeTypes, homogeneousTypeName);
      } else {
        return new DuplicateGroupedAndTyped(
            countDuplicatesToMultiset(itemsIterable),
            /* homogeneousTypeToDisplay= */ Optional.<String>absent());
      }
    }