All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cats.SemigroupalArityFunctions.scala Maven / Gradle / Ivy

The newest version!
// auto-generated boilerplate by /project/Boilerplate.scala
package cats

/**
 * @groupprio Ungrouped 0
 *
 * @groupname MapArity map arity
 * @groupdesc MapArity Higher-arity map methods
 * @groupprio MapArity 999
 *
 * @groupname ContramapArity contramap arity
 * @groupdesc ContramapArity Higher-arity contramap methods
 * @groupprio ContramapArity 999
 *
 * @groupname ImapArity imap arity
 * @groupdesc ImapArity Higher-arity imap methods
 * @groupprio ImapArity 999
 *
 * @groupname TupleArity tuple arity
 * @groupdesc TupleArity Higher-arity tuple methods
 * @groupprio TupleArity 999
 *
 * @groupname TraverseArity traverse arity
 * @groupdesc TraverseArity Higher-arity traverse methods
 * @groupprio TraverseArity 999
 */
trait SemigroupalArityFunctions {
  /** @group MapArity */
  def map2[F[_], A0, A1, Z](f0:F[A0], f1:F[A1])(f: (A0, A1) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, f1)) { case (a0, a1) => f(a0, a1) }
  /** @group ContramapArity */
  def contramap2[F[_], A0, A1, Z](f0:F[A0], f1:F[A1])(f: Z => (A0, A1))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, f1)) { z => val (a0, a1) = f(z); (a0, a1) }
  /** @group ImapArity */
  def imap2[F[_], A0, A1, Z](f0:F[A0], f1:F[A1])(f: (A0, A1) => Z)(g: Z => (A0, A1))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, f1)) { case (a0, a1) => f(a0, a1) } { z => val (a0, a1) = g(z); (a0, a1) }
  /** @group TupleArity */
  def tuple2[F[_], A0, A1](f0:F[A0], f1:F[A1])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1)] =
    imap2(f0, f1)((_, _))(identity)
  /** @group TraverseArity */
  def traverse2[F[_], G[_], A0, A1, Z](f0:F[A0], f1:F[A1])(f: (A0, A1) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, f1)) { case (a0, a1) => f(a0, a1) }
  /** @group MapArity */
  def map3[F[_], A0, A1, A2, Z](f0:F[A0], f1:F[A1], f2:F[A2])(f: (A0, A1, A2) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, f2))) { case (a0, (a1, a2)) => f(a0, a1, a2) }
  /** @group ContramapArity */
  def contramap3[F[_], A0, A1, A2, Z](f0:F[A0], f1:F[A1], f2:F[A2])(f: Z => (A0, A1, A2))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, f2))) { z => val (a0, a1, a2) = f(z); (a0, (a1, a2)) }
  /** @group ImapArity */
  def imap3[F[_], A0, A1, A2, Z](f0:F[A0], f1:F[A1], f2:F[A2])(f: (A0, A1, A2) => Z)(g: Z => (A0, A1, A2))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, f2))) { case (a0, (a1, a2)) => f(a0, a1, a2) } { z => val (a0, a1, a2) = g(z); (a0, (a1, a2)) }
  /** @group TupleArity */
  def tuple3[F[_], A0, A1, A2](f0:F[A0], f1:F[A1], f2:F[A2])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2)] =
    imap3(f0, f1, f2)((_, _, _))(identity)
  /** @group TraverseArity */
  def traverse3[F[_], G[_], A0, A1, A2, Z](f0:F[A0], f1:F[A1], f2:F[A2])(f: (A0, A1, A2) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, f2))) { case (a0, (a1, a2)) => f(a0, a1, a2) }
  /** @group MapArity */
  def map4[F[_], A0, A1, A2, A3, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3])(f: (A0, A1, A2, A3) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, f3)))) { case (a0, (a1, (a2, a3))) => f(a0, a1, a2, a3) }
  /** @group ContramapArity */
  def contramap4[F[_], A0, A1, A2, A3, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3])(f: Z => (A0, A1, A2, A3))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, f3)))) { z => val (a0, a1, a2, a3) = f(z); (a0, (a1, (a2, a3))) }
  /** @group ImapArity */
  def imap4[F[_], A0, A1, A2, A3, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3])(f: (A0, A1, A2, A3) => Z)(g: Z => (A0, A1, A2, A3))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, f3)))) { case (a0, (a1, (a2, a3))) => f(a0, a1, a2, a3) } { z => val (a0, a1, a2, a3) = g(z); (a0, (a1, (a2, a3))) }
  /** @group TupleArity */
  def tuple4[F[_], A0, A1, A2, A3](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3)] =
    imap4(f0, f1, f2, f3)((_, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse4[F[_], G[_], A0, A1, A2, A3, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3])(f: (A0, A1, A2, A3) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, f3)))) { case (a0, (a1, (a2, a3))) => f(a0, a1, a2, a3) }
  /** @group MapArity */
  def map5[F[_], A0, A1, A2, A3, A4, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4])(f: (A0, A1, A2, A3, A4) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, f4))))) { case (a0, (a1, (a2, (a3, a4)))) => f(a0, a1, a2, a3, a4) }
  /** @group ContramapArity */
  def contramap5[F[_], A0, A1, A2, A3, A4, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4])(f: Z => (A0, A1, A2, A3, A4))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, f4))))) { z => val (a0, a1, a2, a3, a4) = f(z); (a0, (a1, (a2, (a3, a4)))) }
  /** @group ImapArity */
  def imap5[F[_], A0, A1, A2, A3, A4, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4])(f: (A0, A1, A2, A3, A4) => Z)(g: Z => (A0, A1, A2, A3, A4))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, f4))))) { case (a0, (a1, (a2, (a3, a4)))) => f(a0, a1, a2, a3, a4) } { z => val (a0, a1, a2, a3, a4) = g(z); (a0, (a1, (a2, (a3, a4)))) }
  /** @group TupleArity */
  def tuple5[F[_], A0, A1, A2, A3, A4](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4)] =
    imap5(f0, f1, f2, f3, f4)((_, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse5[F[_], G[_], A0, A1, A2, A3, A4, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4])(f: (A0, A1, A2, A3, A4) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, f4))))) { case (a0, (a1, (a2, (a3, a4)))) => f(a0, a1, a2, a3, a4) }
  /** @group MapArity */
  def map6[F[_], A0, A1, A2, A3, A4, A5, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5])(f: (A0, A1, A2, A3, A4, A5) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, f5)))))) { case (a0, (a1, (a2, (a3, (a4, a5))))) => f(a0, a1, a2, a3, a4, a5) }
  /** @group ContramapArity */
  def contramap6[F[_], A0, A1, A2, A3, A4, A5, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5])(f: Z => (A0, A1, A2, A3, A4, A5))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, f5)))))) { z => val (a0, a1, a2, a3, a4, a5) = f(z); (a0, (a1, (a2, (a3, (a4, a5))))) }
  /** @group ImapArity */
  def imap6[F[_], A0, A1, A2, A3, A4, A5, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5])(f: (A0, A1, A2, A3, A4, A5) => Z)(g: Z => (A0, A1, A2, A3, A4, A5))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, f5)))))) { case (a0, (a1, (a2, (a3, (a4, a5))))) => f(a0, a1, a2, a3, a4, a5) } { z => val (a0, a1, a2, a3, a4, a5) = g(z); (a0, (a1, (a2, (a3, (a4, a5))))) }
  /** @group TupleArity */
  def tuple6[F[_], A0, A1, A2, A3, A4, A5](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5)] =
    imap6(f0, f1, f2, f3, f4, f5)((_, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse6[F[_], G[_], A0, A1, A2, A3, A4, A5, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5])(f: (A0, A1, A2, A3, A4, A5) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, f5)))))) { case (a0, (a1, (a2, (a3, (a4, a5))))) => f(a0, a1, a2, a3, a4, a5) }
  /** @group MapArity */
  def map7[F[_], A0, A1, A2, A3, A4, A5, A6, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6])(f: (A0, A1, A2, A3, A4, A5, A6) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, f6))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, a6)))))) => f(a0, a1, a2, a3, a4, a5, a6) }
  /** @group ContramapArity */
  def contramap7[F[_], A0, A1, A2, A3, A4, A5, A6, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6])(f: Z => (A0, A1, A2, A3, A4, A5, A6))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, f6))))))) { z => val (a0, a1, a2, a3, a4, a5, a6) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, a6)))))) }
  /** @group ImapArity */
  def imap7[F[_], A0, A1, A2, A3, A4, A5, A6, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6])(f: (A0, A1, A2, A3, A4, A5, A6) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, f6))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, a6)))))) => f(a0, a1, a2, a3, a4, a5, a6) } { z => val (a0, a1, a2, a3, a4, a5, a6) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, a6)))))) }
  /** @group TupleArity */
  def tuple7[F[_], A0, A1, A2, A3, A4, A5, A6](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6)] =
    imap7(f0, f1, f2, f3, f4, f5, f6)((_, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse7[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6])(f: (A0, A1, A2, A3, A4, A5, A6) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, f6))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, a6)))))) => f(a0, a1, a2, a3, a4, a5, a6) }
  /** @group MapArity */
  def map8[F[_], A0, A1, A2, A3, A4, A5, A6, A7, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7])(f: (A0, A1, A2, A3, A4, A5, A6, A7) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, f7)))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, a7))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7) }
  /** @group ContramapArity */
  def contramap8[F[_], A0, A1, A2, A3, A4, A5, A6, A7, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, f7)))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, a7))))))) }
  /** @group ImapArity */
  def imap8[F[_], A0, A1, A2, A3, A4, A5, A6, A7, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7])(f: (A0, A1, A2, A3, A4, A5, A6, A7) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, f7)))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, a7))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, a7))))))) }
  /** @group TupleArity */
  def tuple8[F[_], A0, A1, A2, A3, A4, A5, A6, A7](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7)] =
    imap8(f0, f1, f2, f3, f4, f5, f6, f7)((_, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse8[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7])(f: (A0, A1, A2, A3, A4, A5, A6, A7) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, f7)))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, a7))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7) }
  /** @group MapArity */
  def map9[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, f8))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, a8)))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8) }
  /** @group ContramapArity */
  def contramap9[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, f8))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, a8)))))))) }
  /** @group ImapArity */
  def imap9[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, f8))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, a8)))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, a8)))))))) }
  /** @group TupleArity */
  def tuple9[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8)] =
    imap9(f0, f1, f2, f3, f4, f5, f6, f7, f8)((_, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse9[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, f8))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, a8)))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8) }
  /** @group MapArity */
  def map10[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, f9)))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, a9))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) }
  /** @group ContramapArity */
  def contramap10[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, f9)))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, a9))))))))) }
  /** @group ImapArity */
  def imap10[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, f9)))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, a9))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, a9))))))))) }
  /** @group TupleArity */
  def tuple10[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9)] =
    imap10(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9)((_, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse10[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, f9)))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, a9))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) }
  /** @group MapArity */
  def map11[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, f10))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, a10)))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) }
  /** @group ContramapArity */
  def contramap11[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, f10))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, a10)))))))))) }
  /** @group ImapArity */
  def imap11[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, f10))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, a10)))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, a10)))))))))) }
  /** @group TupleArity */
  def tuple11[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)] =
    imap11(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10)((_, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse11[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, f10))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, a10)))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) }
  /** @group MapArity */
  def map12[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, f11)))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, a11))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) }
  /** @group ContramapArity */
  def contramap12[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, f11)))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, a11))))))))))) }
  /** @group ImapArity */
  def imap12[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, f11)))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, a11))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, a11))))))))))) }
  /** @group TupleArity */
  def tuple12[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11)] =
    imap12(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11)((_, _, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse12[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, f11)))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, a11))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) }
  /** @group MapArity */
  def map13[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, f12))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, a12)))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) }
  /** @group ContramapArity */
  def contramap13[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, f12))))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, a12)))))))))))) }
  /** @group ImapArity */
  def imap13[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, f12))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, a12)))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, a12)))))))))))) }
  /** @group TupleArity */
  def tuple13[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12)] =
    imap13(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12)((_, _, _, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse13[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, f12))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, a12)))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) }
  /** @group MapArity */
  def map14[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, f13)))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, a13))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) }
  /** @group ContramapArity */
  def contramap14[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, f13)))))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, a13))))))))))))) }
  /** @group ImapArity */
  def imap14[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, f13)))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, a13))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, a13))))))))))))) }
  /** @group TupleArity */
  def tuple14[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13)] =
    imap14(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13)((_, _, _, _, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse14[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, f13)))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, a13))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) }
  /** @group MapArity */
  def map15[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, f14))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, a14)))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) }
  /** @group ContramapArity */
  def contramap15[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, f14))))))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, a14)))))))))))))) }
  /** @group ImapArity */
  def imap15[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, f14))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, a14)))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, a14)))))))))))))) }
  /** @group TupleArity */
  def tuple15[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14)] =
    imap15(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14)((_, _, _, _, _, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse15[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, f14))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, a14)))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) }
  /** @group MapArity */
  def map16[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, f15)))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, a15))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) }
  /** @group ContramapArity */
  def contramap16[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, f15)))))))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, a15))))))))))))))) }
  /** @group ImapArity */
  def imap16[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, f15)))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, a15))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, a15))))))))))))))) }
  /** @group TupleArity */
  def tuple16[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15)] =
    imap16(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15)((_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse16[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, f15)))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, a15))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) }
  /** @group MapArity */
  def map17[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, f16))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, a16)))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) }
  /** @group ContramapArity */
  def contramap17[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, f16))))))))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, a16)))))))))))))))) }
  /** @group ImapArity */
  def imap17[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, f16))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, a16)))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, a16)))))))))))))))) }
  /** @group TupleArity */
  def tuple17[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16)] =
    imap17(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16)((_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse17[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, f16))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, a16)))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16) }
  /** @group MapArity */
  def map18[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, f17)))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, a17))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) }
  /** @group ContramapArity */
  def contramap18[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, f17)))))))))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, a17))))))))))))))))) }
  /** @group ImapArity */
  def imap18[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, f17)))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, a17))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, a17))))))))))))))))) }
  /** @group TupleArity */
  def tuple18[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17)] =
    imap18(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17)((_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse18[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, f17)))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, a17))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17) }
  /** @group MapArity */
  def map19[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, f18))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, a18)))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) }
  /** @group ContramapArity */
  def contramap19[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, f18))))))))))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, a18)))))))))))))))))) }
  /** @group ImapArity */
  def imap19[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, f18))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, a18)))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, a18)))))))))))))))))) }
  /** @group TupleArity */
  def tuple19[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18)] =
    imap19(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18)((_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse19[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, f18))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, a18)))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18) }
  /** @group MapArity */
  def map20[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, f19)))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, a19))))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) }
  /** @group ContramapArity */
  def contramap20[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, f19)))))))))))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, a19))))))))))))))))))) }
  /** @group ImapArity */
  def imap20[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, f19)))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, a19))))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, a19))))))))))))))))))) }
  /** @group TupleArity */
  def tuple20[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19)] =
    imap20(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19)((_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse20[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, f19)))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, a19))))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19) }
  /** @group MapArity */
  def map21[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19], f20:F[A20])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, semigroupal.product(f19, f20))))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, (a19, a20)))))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) }
  /** @group ContramapArity */
  def contramap21[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19], f20:F[A20])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, semigroupal.product(f19, f20))))))))))))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, (a19, a20)))))))))))))))))))) }
  /** @group ImapArity */
  def imap21[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19], f20:F[A20])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, semigroupal.product(f19, f20))))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, (a19, a20)))))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, (a19, a20)))))))))))))))))))) }
  /** @group TupleArity */
  def tuple21[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19], f20:F[A20])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20)] =
    imap21(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20)((_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse21[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19], f20:F[A20])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, semigroupal.product(f19, f20))))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, (a19, a20)))))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) }
  /** @group MapArity */
  def map22[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19], f20:F[A20], f21:F[A21])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) => Z)(implicit semigroupal: Semigroupal[F], functor: Functor[F]): F[Z] =
    functor.map(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, semigroupal.product(f19, semigroupal.product(f20, f21)))))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, (a19, (a20, a21))))))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21) }
  /** @group ContramapArity */
  def contramap22[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19], f20:F[A20], f21:F[A21])(f: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21))(implicit semigroupal: Semigroupal[F], contravariant: Contravariant[F]):F[Z] =
    contravariant.contramap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, semigroupal.product(f19, semigroupal.product(f20, f21)))))))))))))))))))))) { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21) = f(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, (a19, (a20, a21))))))))))))))))))))) }
  /** @group ImapArity */
  def imap22[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19], f20:F[A20], f21:F[A21])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) => Z)(g: Z => (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21))(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[Z] =
    invariant.imap(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, semigroupal.product(f19, semigroupal.product(f20, f21)))))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, (a19, (a20, a21))))))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21) } { z => val (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21) = g(z); (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, (a19, (a20, a21))))))))))))))))))))) }
  /** @group TupleArity */
  def tuple22[F[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19], f20:F[A20], f21:F[A21])(implicit semigroupal: Semigroupal[F], invariant: Invariant[F]):F[(A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21)] =
    imap22(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21)((_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _))(identity)
  /** @group TraverseArity */
  def traverse22[F[_], G[_], A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, Z](f0:F[A0], f1:F[A1], f2:F[A2], f3:F[A3], f4:F[A4], f5:F[A5], f6:F[A6], f7:F[A7], f8:F[A8], f9:F[A9], f10:F[A10], f11:F[A11], f12:F[A12], f13:F[A13], f14:F[A14], f15:F[A15], f16:F[A16], f17:F[A17], f18:F[A18], f19:F[A19], f20:F[A20], f21:F[A21])(f: (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) => G[Z])(implicit semigroupal: Semigroupal[F], traverse: Traverse[F], applicative: Applicative[G]): G[F[Z]] =
    traverse.traverse(semigroupal.product(f0, semigroupal.product(f1, semigroupal.product(f2, semigroupal.product(f3, semigroupal.product(f4, semigroupal.product(f5, semigroupal.product(f6, semigroupal.product(f7, semigroupal.product(f8, semigroupal.product(f9, semigroupal.product(f10, semigroupal.product(f11, semigroupal.product(f12, semigroupal.product(f13, semigroupal.product(f14, semigroupal.product(f15, semigroupal.product(f16, semigroupal.product(f17, semigroupal.product(f18, semigroupal.product(f19, semigroupal.product(f20, f21)))))))))))))))))))))) { case (a0, (a1, (a2, (a3, (a4, (a5, (a6, (a7, (a8, (a9, (a10, (a11, (a12, (a13, (a14, (a15, (a16, (a17, (a18, (a19, (a20, a21))))))))))))))))))))) => f(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21) }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy