code: @Override
      public Pair<Optional<E1>, Optional<E2>> next() {
          return Pair.of(former.next(), latter.next());
      }
docs: iterating over the longest iterator gives a Pair of Optional.nothing
  indefinitely "no matter how many times you try, you can't shoot the dog"
  
  @return TODO