in bijection-core/src/main/scala-2.12-/com/twitter/bijection/CollectionBijections.scala [163:190]
implicit def betweenMaps[K1, V1, K2, V2](implicit
kBijection: ImplicitBijection[K1, K2],
vBijection: ImplicitBijection[V1, V2]
) =
toContainer[(K1, V1), (K2, V2), Map[K1, V1], Map[K2, V2]]
implicit def betweenVectors[T, U](implicit bij: ImplicitBijection[T, U]) =
toContainer[T, U, Vector[T], Vector[U]]
implicit def betweenIndexedSeqs[T, U](implicit bij: ImplicitBijection[T, U]) =
toContainer[T, U, IndexedSeq[T], IndexedSeq[U]]
implicit def betweenSets[T, U](implicit bij: ImplicitBijection[T, U]) =
toContainer[T, U, Set[T], Set[U]]
implicit def betweenSeqs[T, U](implicit bij: ImplicitBijection[T, U]) =
toContainer[T, U, Seq[T], Seq[U]]
implicit def betweenLists[T, U](implicit bij: ImplicitBijection[T, U]) =
toContainer[T, U, List[T], List[U]]
implicit def option[T, U](implicit
bij: ImplicitBijection[T, U]
): Bijection[Option[T], Option[U]] =
new AbstractBijection[Option[T], Option[U]] {
override def apply(optt: Option[T]) = optt.map(bij.bijection)
override def invert(optu: Option[U]) = optu.map(bij.bijection.inverse)
}