code: public boolean isRedundant() {
      if (isListChange()) {
        return Objects.equals(oldList.get(),newList.get());
      }
      return oldValue.get().equals(newValue.get());
    }
docs: Compares newValue and oldValue to see if they are the same.
  If this is the case, this change is redundant, since it doesn't represent a true change.
  This can happen on compounded changes.
  
  @return true if redundant, else if otherwise.