public static <T> int hashCode(Iterable<? extends T> s) {
    int result = 1;
    for (T elem : s) {
      result = 31 * result + (elem == null? 0 : elem.hashCode());
    }
    return result;
  }
public static <T> int hashCode(Iterable<? extends T> s)