docs: @Nullable
    private List<String> tryMergeDictionary()
    {
      final Set<String> mergedDictionary = new HashSet<>();
      long totalDictionarySize = 0L;
  
      for (SpillingGrouper<KeyType> grouper : groupers) {
        final List<String> dictionary = grouper.mergeAndGetDictionary();
  
        for (String key : dictionary) {
          if (mergedDictionary.add(key)) {
            totalDictionarySize += RowBasedGrouperHelper.estimateStringKeySize(key);
            if (totalDictionarySize > maxDictionarySizeForCombiner) {
              return null;
            }
          }
        }
      }
  
      return ImmutableList.copyOf(mergedDictionary);
    }