in bijection-core/src/main/scala-2.12-/com/twitter/bijection/CollectionBijections.scala [145:161]
def toContainer[A, B, C <: TraversableOnce[A], D <: TraversableOnce[B]](implicit
bij: ImplicitBijection[A, B],
cd: CanBuildFrom[Nothing, B, D],
dc: CanBuildFrom[Nothing, A, C]
): Bijection[C, D] =
new AbstractBijection[C, D] {
def apply(c: C) = {
val builder = cd()
c foreach { builder += bij(_) }
builder.result()
}
override def invert(d: D) = {
val builder = dc()
d foreach { builder += bij.invert(_) }
builder.result()
}
}