code: def peek_at(iterable: Iterable[T]) -> Tuple[T, Iterator[T]]:
      
      gen = iter(iterable)
      peek = next(gen)
      return peek, itertools.chain([peek], gen)
docs: Returns the first value from iterable, as well as a new iterator with
      the same content as the original iterable