def toContainer[A, B, C <: IterableOnce[A], D <: IterableOnce[B]]()

in bijection-core/src/main/scala-2.13+/com/twitter/bijection/CollectionBijections.scala [145:161]


  def toContainer[A, B, C <: IterableOnce[A], D <: IterableOnce[B]](implicit
      bij: ImplicitBijection[A, B],
      cd: Factory[B, D],
      dc: Factory[A, C]
  ): Bijection[C, D] =
    new AbstractBijection[C, D] {
      def apply(c: C) = {
        val builder = cd.newBuilder
        c.iterator.foreach { builder += bij(_) }
        builder.result()
      }
      override def invert(d: D) = {
        val builder = dc.newBuilder
        d.iterator.foreach { builder += bij.invert(_) }
        builder.result()
      }
    }