def join[A, B, C, D, E, F, G, H, I, J, K, L, M, N]()

in src/main/scala/com/twitter/stitch/Arrow.scala [3425:3547]


  def join[A, B, C, D, E, F, G, H, I, J, K, L, M, N](
    a1: Arrow[A, B],
    a2: Arrow[A, C],
    a3: Arrow[A, D],
    a4: Arrow[A, E],
    a5: Arrow[A, F],
    a6: Arrow[A, G],
    a7: Arrow[A, H],
    a8: Arrow[A, I],
    a9: Arrow[A, J],
    a10: Arrow[A, K],
    a11: Arrow[A, L],
    a12: Arrow[A, M],
    a13: Arrow[A, N]
  ): Arrow[A, (B, C, D, E, F, G, H, I, J, K, L, M, N)] =
    joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)(
      (_, _, _, _, _, _, _, _, _, _, _, _, _)
    )

  /**
   * `Arrow.joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)(k)` is equivalent to
   * `Arrow.join(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13).map(k.tupled)`,
   * but avoids allocating an intermediate tuple.
   */
  def joinMap[A, B, C, D, E, F, G, H, I, J, K, L, M, N, Z](
    a1: Arrow[A, B],
    a2: Arrow[A, C],
    a3: Arrow[A, D],
    a4: Arrow[A, E],
    a5: Arrow[A, F],
    a6: Arrow[A, G],
    a7: Arrow[A, H],
    a8: Arrow[A, I],
    a9: Arrow[A, J],
    a10: Arrow[A, K],
    a11: Arrow[A, L],
    a12: Arrow[A, M],
    a13: Arrow[A, N]
  )(
    k: (B, C, D, E, F, G, H, I, J, K, L, M, N) => Z
  ): Arrow[A, Z] =
    (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) match {
      case (Const(Throw(e)), _, _, _, _, _, _, _, _, _, _, _, _) => exception(e)
      case (_, Const(Throw(e)), _, _, _, _, _, _, _, _, _, _, _) => exception(e)
      case (_, _, Const(Throw(e)), _, _, _, _, _, _, _, _, _, _) => exception(e)
      case (_, _, _, Const(Throw(e)), _, _, _, _, _, _, _, _, _) => exception(e)
      case (_, _, _, _, Const(Throw(e)), _, _, _, _, _, _, _, _) => exception(e)
      case (_, _, _, _, _, Const(Throw(e)), _, _, _, _, _, _, _) => exception(e)
      case (_, _, _, _, _, _, Const(Throw(e)), _, _, _, _, _, _) => exception(e)
      case (_, _, _, _, _, _, _, Const(Throw(e)), _, _, _, _, _) => exception(e)
      case (_, _, _, _, _, _, _, _, Const(Throw(e)), _, _, _, _) => exception(e)
      case (_, _, _, _, _, _, _, _, _, Const(Throw(e)), _, _, _) => exception(e)
      case (_, _, _, _, _, _, _, _, _, _, Const(Throw(e)), _, _) => exception(e)
      case (_, _, _, _, _, _, _, _, _, _, _, Const(Throw(e)), _) => exception(e)
      case (_, _, _, _, _, _, _, _, _, _, _, _, Const(Throw(e))) => exception(e)
      case (Const(Return(v1)), _, _, _, _, _, _, _, _, _, _, _, _) =>
        joinMap(a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) {
          (v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, Const(Return(v2)), _, _, _, _, _, _, _, _, _, _, _) =>
        joinMap(a1, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) {
          (v1, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, _, Const(Return(v3)), _, _, _, _, _, _, _, _, _, _) =>
        joinMap(a1, a2, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) {
          (v1, v2, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, _, _, Const(Return(v4)), _, _, _, _, _, _, _, _, _) =>
        joinMap(a1, a2, a3, a5, a6, a7, a8, a9, a10, a11, a12, a13) {
          (v1, v2, v3, v5, v6, v7, v8, v9, v10, v11, v12, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, _, _, _, Const(Return(v5)), _, _, _, _, _, _, _, _) =>
        joinMap(a1, a2, a3, a4, a6, a7, a8, a9, a10, a11, a12, a13) {
          (v1, v2, v3, v4, v6, v7, v8, v9, v10, v11, v12, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, _, _, _, _, Const(Return(v6)), _, _, _, _, _, _, _) =>
        joinMap(a1, a2, a3, a4, a5, a7, a8, a9, a10, a11, a12, a13) {
          (v1, v2, v3, v4, v5, v7, v8, v9, v10, v11, v12, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, _, _, _, _, _, Const(Return(v7)), _, _, _, _, _, _) =>
        joinMap(a1, a2, a3, a4, a5, a6, a8, a9, a10, a11, a12, a13) {
          (v1, v2, v3, v4, v5, v6, v8, v9, v10, v11, v12, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, _, _, _, _, _, _, Const(Return(v8)), _, _, _, _, _) =>
        joinMap(a1, a2, a3, a4, a5, a6, a7, a9, a10, a11, a12, a13) {
          (v1, v2, v3, v4, v5, v6, v7, v9, v10, v11, v12, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, _, _, _, _, _, _, _, Const(Return(v9)), _, _, _, _) =>
        joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a10, a11, a12, a13) {
          (v1, v2, v3, v4, v5, v6, v7, v8, v10, v11, v12, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, _, _, _, _, _, _, _, _, Const(Return(v10)), _, _, _) =>
        joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a9, a11, a12, a13) {
          (v1, v2, v3, v4, v5, v6, v7, v8, v9, v11, v12, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, _, _, _, _, _, _, _, _, _, Const(Return(v11)), _, _) =>
        joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a12, a13) {
          (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v12, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, _, _, _, _, _, _, _, _, _, _, Const(Return(v12)), _) =>
        joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a13) {
          (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v13) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case (_, _, _, _, _, _, _, _, _, _, _, _, Const(Return(v13))) =>
        joinMap(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) {
          (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) =>
            k(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
        }
      case _ =>
        JoinMap13(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, k)
    }