public static <T> boolean equals(Iterable<? extends T> s1, Iterable<? extends T> s2) {
    return equals(s1, s2, new BiFunction<T, T, Boolean>() {
      @Override
      public Boolean fun(T t1, T t2) {
        return t1.equals(t2);
      }
    });
  }
public static <T> boolean equals(Iterable<? extends T> s1, Iterable<? extends T> s2)