class LazyCachingIteratorToIterable implements Iterable<T> {

  @Override
  public int hashCode() {
    return iterator.hasNext() ? iterator.next().hashCode() : -1789023489;
  }

  public  LazyCachingIteratorToIterable(Iterator<T> iterator);

}