zipAll

trait Collection[A] {
  def zipAll[B](bs: Collection[B], a: A, b: B): Collection[(A, B)]
}

zipAll creates a collection by pairing each element of this collection with the element occupying the same index in bs and providing default values a or b for unpaired elements.