zip

trait Collection[A] {
  def zip[B](bs: Collection[B]): Collection[(A, B)]
}

zip creates a collection by pairing each element of this collection with the element occupying the same index in bs and discarding unpaired elements.