android/guava/src/com/google/common/base/Equivalence.java
@GwtCompatible(serializable = true)
  public final <S extends T> Equivalence<Iterable<S>> pairwise() {
    // Ideally, the returned equivalence would support Iterable<? extends T>. However,
    // the need for this is so rare that it's not worth making callers deal with the ugly wildcard.
    return new PairwiseEquivalence<S>(this);
  }
@GwtCompatible(serializable = true)
  public final <S extends T> Equivalence<Iterable<S>> pairwise() {
    // Ideally, the returned equivalence would support Iterable<? extends T>. However,
    // the need for this is so rare that it's not worth making callers deal with the ugly wildcard.
    return new PairwiseEquivalence<S>(this);
  }
Returns an equivalence over iterables based on the equivalence of their elements. More
specifically, two iterables are considered equivalent if they both contain the same number of
elements, and each pair of corresponding elements is equivalent according to {@code this}. Null
iterables are equivalent to one another.

<p>Note that this method performs a similar function for equivalences as {@link
com.google.common.collect.Ordering#lexicographical} does for orderings.

@since 10.0