@NotNull
  private static FairDiffIterable optimizeWordChunks(@NotNull CharSequence text1,
                                                     @NotNull CharSequence text2,
                                                     @NotNull List<? extends InlineChunk> words1,
                                                     @NotNull List<? extends InlineChunk> words2,
                                                     @NotNull FairDiffIterable iterable,
                                                     @NotNull CancellationChecker indicator) {
    return new ChunkOptimizer.WordChunkOptimizer(words1, words2, text1, text2, iterable, indicator).build();
  }
@NotNull
  private static FairDiffIterable optimizeWordChunks(@NotNull CharSequence text1,
                                                     @NotNull CharSequence text2,
                                                     @NotNull List<? extends InlineChunk> words1,
                                                     @NotNull List<? extends InlineChunk> words2,
                                                     @NotNull FairDiffIterable iterable,
                                                     @NotNull CancellationChecker indicator)