implicit def fn2Bijection[A, B, C, D, E, F]()

in bijection-core/src/main/scala-2.13+/com/twitter/bijection/Bijection.scala [136:148]


  implicit def fn2Bijection[A, B, C, D, E, F](implicit
      bab: ImplicitBijection[A, B],
      bcd: ImplicitBijection[C, D],
      bef: ImplicitBijection[E, F]
  ): Bijection[(A, C) => E, (B, D) => F] =
    new AbstractBijection[(A, C) => E, (B, D) => F] {
      def apply(fn: (A, C) => E) = { (b, d) =>
        bef.apply(fn(bab.invert(b), bcd.invert(d)))
      }
      override def invert(fn: (B, D) => F) = { (a, c) =>
        bef.invert(fn(bab.apply(a), bcd.apply(c)))
      }
    }