code: public <E, F> List<UnifiedDiffBlock<E, F>> unified(List<E> previous, List<E> next,
          UnifiedDiffConfiguration<E, F> config)
      {
          setError(null);
  
          try {
              return this.unifiedDiffDisplayer.display(this.diffManager.diff(previous, next, null), config);
          } catch (DiffException e) {
              setError(e);
              return null;
          }
      }
docs: Builds an unified diff between two versions of a list of elements. If a splitter is provided through the given
  configuration object then the unified diff will display changes at two levels of granularity: elements and their
  sub-elements.
  
  @param previous the previous version
  @param next the next version
  @param config the configuration object
  @param <E> the type of composite elements that are compared to produce the first level diff
  @param <F> the type of sub-elements that are compared to produce the second level diff when a composite element
  @return the list of extended diff blocks