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

com.twitter.scalding.GeneratedTupleAdders.scala Maven / Gradle / Ivy

// following were autogenerated by scripts/tuple_adder_generator.rb at Wed Jul 11 11:11:38 -0700 2012 do not edit
package com.twitter.scalding

trait GeneratedTupleAdders {
  class Tuple1Adder[A](tup : Tuple1[A]) {
    def :+[B](other : B) = {
      (tup._1,other)
    }

    def ++[B](other : Tuple1[B]) = {
      (tup._1,other._1)
    }

    def ++[B,C](other : Tuple2[B,C]) = {
      (tup._1,other._1,other._2)
    }

    def ++[B,C,D](other : Tuple3[B,C,D]) = {
      (tup._1,other._1,other._2,other._3)
    }

    def ++[B,C,D,E](other : Tuple4[B,C,D,E]) = {
      (tup._1,other._1,other._2,other._3,other._4)
    }

    def ++[B,C,D,E,F](other : Tuple5[B,C,D,E,F]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[B,C,D,E,F,G](other : Tuple6[B,C,D,E,F,G]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[B,C,D,E,F,G,H](other : Tuple7[B,C,D,E,F,G,H]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[B,C,D,E,F,G,H,I](other : Tuple8[B,C,D,E,F,G,H,I]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[B,C,D,E,F,G,H,I,J](other : Tuple9[B,C,D,E,F,G,H,I,J]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[B,C,D,E,F,G,H,I,J,K](other : Tuple10[B,C,D,E,F,G,H,I,J,K]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }

    def ++[B,C,D,E,F,G,H,I,J,K,L](other : Tuple11[B,C,D,E,F,G,H,I,J,K,L]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11)
    }

    def ++[B,C,D,E,F,G,H,I,J,K,L,M](other : Tuple12[B,C,D,E,F,G,H,I,J,K,L,M]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12)
    }

    def ++[B,C,D,E,F,G,H,I,J,K,L,M,N](other : Tuple13[B,C,D,E,F,G,H,I,J,K,L,M,N]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13)
    }

    def ++[B,C,D,E,F,G,H,I,J,K,L,M,N,O](other : Tuple14[B,C,D,E,F,G,H,I,J,K,L,M,N,O]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14)
    }

    def ++[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P](other : Tuple15[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15)
    }

    def ++[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q](other : Tuple16[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16)
    }

    def ++[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R](other : Tuple17[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17)
    }

    def ++[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S](other : Tuple18[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17,other._18)
    }

    def ++[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T](other : Tuple19[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17,other._18,other._19)
    }

    def ++[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U](other : Tuple20[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17,other._18,other._19,other._20)
    }

    def ++[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V](other : Tuple21[B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17,other._18,other._19,other._20,other._21)
    }
  }

  implicit def tup1ToAdder[A](tup : Tuple1[A]) = new Tuple1Adder(tup)

  class Tuple2Adder[A,B](tup : Tuple2[A,B]) {
    def :+[C](other : C) = {
      (tup._1,tup._2,other)
    }

    def ++[C](other : Tuple1[C]) = {
      (tup._1,tup._2,other._1)
    }

    def ++[C,D](other : Tuple2[C,D]) = {
      (tup._1,tup._2,other._1,other._2)
    }

    def ++[C,D,E](other : Tuple3[C,D,E]) = {
      (tup._1,tup._2,other._1,other._2,other._3)
    }

    def ++[C,D,E,F](other : Tuple4[C,D,E,F]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4)
    }

    def ++[C,D,E,F,G](other : Tuple5[C,D,E,F,G]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[C,D,E,F,G,H](other : Tuple6[C,D,E,F,G,H]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[C,D,E,F,G,H,I](other : Tuple7[C,D,E,F,G,H,I]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[C,D,E,F,G,H,I,J](other : Tuple8[C,D,E,F,G,H,I,J]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[C,D,E,F,G,H,I,J,K](other : Tuple9[C,D,E,F,G,H,I,J,K]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[C,D,E,F,G,H,I,J,K,L](other : Tuple10[C,D,E,F,G,H,I,J,K,L]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }

    def ++[C,D,E,F,G,H,I,J,K,L,M](other : Tuple11[C,D,E,F,G,H,I,J,K,L,M]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11)
    }

    def ++[C,D,E,F,G,H,I,J,K,L,M,N](other : Tuple12[C,D,E,F,G,H,I,J,K,L,M,N]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12)
    }

    def ++[C,D,E,F,G,H,I,J,K,L,M,N,O](other : Tuple13[C,D,E,F,G,H,I,J,K,L,M,N,O]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13)
    }

    def ++[C,D,E,F,G,H,I,J,K,L,M,N,O,P](other : Tuple14[C,D,E,F,G,H,I,J,K,L,M,N,O,P]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14)
    }

    def ++[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q](other : Tuple15[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15)
    }

    def ++[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R](other : Tuple16[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16)
    }

    def ++[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S](other : Tuple17[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17)
    }

    def ++[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T](other : Tuple18[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17,other._18)
    }

    def ++[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U](other : Tuple19[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17,other._18,other._19)
    }

    def ++[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V](other : Tuple20[C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17,other._18,other._19,other._20)
    }
  }

  implicit def tup2ToAdder[A,B](tup : Tuple2[A,B]) = new Tuple2Adder(tup)

  class Tuple3Adder[A,B,C](tup : Tuple3[A,B,C]) {
    def :+[D](other : D) = {
      (tup._1,tup._2,tup._3,other)
    }

    def ++[D](other : Tuple1[D]) = {
      (tup._1,tup._2,tup._3,other._1)
    }

    def ++[D,E](other : Tuple2[D,E]) = {
      (tup._1,tup._2,tup._3,other._1,other._2)
    }

    def ++[D,E,F](other : Tuple3[D,E,F]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3)
    }

    def ++[D,E,F,G](other : Tuple4[D,E,F,G]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4)
    }

    def ++[D,E,F,G,H](other : Tuple5[D,E,F,G,H]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[D,E,F,G,H,I](other : Tuple6[D,E,F,G,H,I]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[D,E,F,G,H,I,J](other : Tuple7[D,E,F,G,H,I,J]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[D,E,F,G,H,I,J,K](other : Tuple8[D,E,F,G,H,I,J,K]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[D,E,F,G,H,I,J,K,L](other : Tuple9[D,E,F,G,H,I,J,K,L]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[D,E,F,G,H,I,J,K,L,M](other : Tuple10[D,E,F,G,H,I,J,K,L,M]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }

    def ++[D,E,F,G,H,I,J,K,L,M,N](other : Tuple11[D,E,F,G,H,I,J,K,L,M,N]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11)
    }

    def ++[D,E,F,G,H,I,J,K,L,M,N,O](other : Tuple12[D,E,F,G,H,I,J,K,L,M,N,O]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12)
    }

    def ++[D,E,F,G,H,I,J,K,L,M,N,O,P](other : Tuple13[D,E,F,G,H,I,J,K,L,M,N,O,P]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13)
    }

    def ++[D,E,F,G,H,I,J,K,L,M,N,O,P,Q](other : Tuple14[D,E,F,G,H,I,J,K,L,M,N,O,P,Q]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14)
    }

    def ++[D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R](other : Tuple15[D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15)
    }

    def ++[D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S](other : Tuple16[D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16)
    }

    def ++[D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T](other : Tuple17[D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17)
    }

    def ++[D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U](other : Tuple18[D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17,other._18)
    }

    def ++[D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V](other : Tuple19[D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17,other._18,other._19)
    }
  }

  implicit def tup3ToAdder[A,B,C](tup : Tuple3[A,B,C]) = new Tuple3Adder(tup)

  class Tuple4Adder[A,B,C,D](tup : Tuple4[A,B,C,D]) {
    def :+[E](other : E) = {
      (tup._1,tup._2,tup._3,tup._4,other)
    }

    def ++[E](other : Tuple1[E]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1)
    }

    def ++[E,F](other : Tuple2[E,F]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2)
    }

    def ++[E,F,G](other : Tuple3[E,F,G]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3)
    }

    def ++[E,F,G,H](other : Tuple4[E,F,G,H]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4)
    }

    def ++[E,F,G,H,I](other : Tuple5[E,F,G,H,I]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[E,F,G,H,I,J](other : Tuple6[E,F,G,H,I,J]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[E,F,G,H,I,J,K](other : Tuple7[E,F,G,H,I,J,K]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[E,F,G,H,I,J,K,L](other : Tuple8[E,F,G,H,I,J,K,L]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[E,F,G,H,I,J,K,L,M](other : Tuple9[E,F,G,H,I,J,K,L,M]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[E,F,G,H,I,J,K,L,M,N](other : Tuple10[E,F,G,H,I,J,K,L,M,N]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }

    def ++[E,F,G,H,I,J,K,L,M,N,O](other : Tuple11[E,F,G,H,I,J,K,L,M,N,O]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11)
    }

    def ++[E,F,G,H,I,J,K,L,M,N,O,P](other : Tuple12[E,F,G,H,I,J,K,L,M,N,O,P]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12)
    }

    def ++[E,F,G,H,I,J,K,L,M,N,O,P,Q](other : Tuple13[E,F,G,H,I,J,K,L,M,N,O,P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13)
    }

    def ++[E,F,G,H,I,J,K,L,M,N,O,P,Q,R](other : Tuple14[E,F,G,H,I,J,K,L,M,N,O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14)
    }

    def ++[E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S](other : Tuple15[E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15)
    }

    def ++[E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T](other : Tuple16[E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16)
    }

    def ++[E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U](other : Tuple17[E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17)
    }

    def ++[E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V](other : Tuple18[E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17,other._18)
    }
  }

  implicit def tup4ToAdder[A,B,C,D](tup : Tuple4[A,B,C,D]) = new Tuple4Adder(tup)

  class Tuple5Adder[A,B,C,D,E](tup : Tuple5[A,B,C,D,E]) {
    def :+[F](other : F) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other)
    }

    def ++[F](other : Tuple1[F]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1)
    }

    def ++[F,G](other : Tuple2[F,G]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2)
    }

    def ++[F,G,H](other : Tuple3[F,G,H]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3)
    }

    def ++[F,G,H,I](other : Tuple4[F,G,H,I]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4)
    }

    def ++[F,G,H,I,J](other : Tuple5[F,G,H,I,J]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[F,G,H,I,J,K](other : Tuple6[F,G,H,I,J,K]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[F,G,H,I,J,K,L](other : Tuple7[F,G,H,I,J,K,L]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[F,G,H,I,J,K,L,M](other : Tuple8[F,G,H,I,J,K,L,M]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[F,G,H,I,J,K,L,M,N](other : Tuple9[F,G,H,I,J,K,L,M,N]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[F,G,H,I,J,K,L,M,N,O](other : Tuple10[F,G,H,I,J,K,L,M,N,O]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }

    def ++[F,G,H,I,J,K,L,M,N,O,P](other : Tuple11[F,G,H,I,J,K,L,M,N,O,P]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11)
    }

    def ++[F,G,H,I,J,K,L,M,N,O,P,Q](other : Tuple12[F,G,H,I,J,K,L,M,N,O,P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12)
    }

    def ++[F,G,H,I,J,K,L,M,N,O,P,Q,R](other : Tuple13[F,G,H,I,J,K,L,M,N,O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13)
    }

    def ++[F,G,H,I,J,K,L,M,N,O,P,Q,R,S](other : Tuple14[F,G,H,I,J,K,L,M,N,O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14)
    }

    def ++[F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T](other : Tuple15[F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15)
    }

    def ++[F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U](other : Tuple16[F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16)
    }

    def ++[F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V](other : Tuple17[F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16,other._17)
    }
  }

  implicit def tup5ToAdder[A,B,C,D,E](tup : Tuple5[A,B,C,D,E]) = new Tuple5Adder(tup)

  class Tuple6Adder[A,B,C,D,E,F](tup : Tuple6[A,B,C,D,E,F]) {
    def :+[G](other : G) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other)
    }

    def ++[G](other : Tuple1[G]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1)
    }

    def ++[G,H](other : Tuple2[G,H]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2)
    }

    def ++[G,H,I](other : Tuple3[G,H,I]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3)
    }

    def ++[G,H,I,J](other : Tuple4[G,H,I,J]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4)
    }

    def ++[G,H,I,J,K](other : Tuple5[G,H,I,J,K]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[G,H,I,J,K,L](other : Tuple6[G,H,I,J,K,L]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[G,H,I,J,K,L,M](other : Tuple7[G,H,I,J,K,L,M]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[G,H,I,J,K,L,M,N](other : Tuple8[G,H,I,J,K,L,M,N]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[G,H,I,J,K,L,M,N,O](other : Tuple9[G,H,I,J,K,L,M,N,O]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[G,H,I,J,K,L,M,N,O,P](other : Tuple10[G,H,I,J,K,L,M,N,O,P]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }

    def ++[G,H,I,J,K,L,M,N,O,P,Q](other : Tuple11[G,H,I,J,K,L,M,N,O,P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11)
    }

    def ++[G,H,I,J,K,L,M,N,O,P,Q,R](other : Tuple12[G,H,I,J,K,L,M,N,O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12)
    }

    def ++[G,H,I,J,K,L,M,N,O,P,Q,R,S](other : Tuple13[G,H,I,J,K,L,M,N,O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13)
    }

    def ++[G,H,I,J,K,L,M,N,O,P,Q,R,S,T](other : Tuple14[G,H,I,J,K,L,M,N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14)
    }

    def ++[G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U](other : Tuple15[G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15)
    }

    def ++[G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V](other : Tuple16[G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15,other._16)
    }
  }

  implicit def tup6ToAdder[A,B,C,D,E,F](tup : Tuple6[A,B,C,D,E,F]) = new Tuple6Adder(tup)

  class Tuple7Adder[A,B,C,D,E,F,G](tup : Tuple7[A,B,C,D,E,F,G]) {
    def :+[H](other : H) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other)
    }

    def ++[H](other : Tuple1[H]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1)
    }

    def ++[H,I](other : Tuple2[H,I]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2)
    }

    def ++[H,I,J](other : Tuple3[H,I,J]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3)
    }

    def ++[H,I,J,K](other : Tuple4[H,I,J,K]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4)
    }

    def ++[H,I,J,K,L](other : Tuple5[H,I,J,K,L]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[H,I,J,K,L,M](other : Tuple6[H,I,J,K,L,M]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[H,I,J,K,L,M,N](other : Tuple7[H,I,J,K,L,M,N]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[H,I,J,K,L,M,N,O](other : Tuple8[H,I,J,K,L,M,N,O]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[H,I,J,K,L,M,N,O,P](other : Tuple9[H,I,J,K,L,M,N,O,P]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[H,I,J,K,L,M,N,O,P,Q](other : Tuple10[H,I,J,K,L,M,N,O,P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }

    def ++[H,I,J,K,L,M,N,O,P,Q,R](other : Tuple11[H,I,J,K,L,M,N,O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11)
    }

    def ++[H,I,J,K,L,M,N,O,P,Q,R,S](other : Tuple12[H,I,J,K,L,M,N,O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12)
    }

    def ++[H,I,J,K,L,M,N,O,P,Q,R,S,T](other : Tuple13[H,I,J,K,L,M,N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13)
    }

    def ++[H,I,J,K,L,M,N,O,P,Q,R,S,T,U](other : Tuple14[H,I,J,K,L,M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14)
    }

    def ++[H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V](other : Tuple15[H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14,other._15)
    }
  }

  implicit def tup7ToAdder[A,B,C,D,E,F,G](tup : Tuple7[A,B,C,D,E,F,G]) = new Tuple7Adder(tup)

  class Tuple8Adder[A,B,C,D,E,F,G,H](tup : Tuple8[A,B,C,D,E,F,G,H]) {
    def :+[I](other : I) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other)
    }

    def ++[I](other : Tuple1[I]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1)
    }

    def ++[I,J](other : Tuple2[I,J]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2)
    }

    def ++[I,J,K](other : Tuple3[I,J,K]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3)
    }

    def ++[I,J,K,L](other : Tuple4[I,J,K,L]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3,other._4)
    }

    def ++[I,J,K,L,M](other : Tuple5[I,J,K,L,M]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[I,J,K,L,M,N](other : Tuple6[I,J,K,L,M,N]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[I,J,K,L,M,N,O](other : Tuple7[I,J,K,L,M,N,O]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[I,J,K,L,M,N,O,P](other : Tuple8[I,J,K,L,M,N,O,P]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[I,J,K,L,M,N,O,P,Q](other : Tuple9[I,J,K,L,M,N,O,P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[I,J,K,L,M,N,O,P,Q,R](other : Tuple10[I,J,K,L,M,N,O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }

    def ++[I,J,K,L,M,N,O,P,Q,R,S](other : Tuple11[I,J,K,L,M,N,O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11)
    }

    def ++[I,J,K,L,M,N,O,P,Q,R,S,T](other : Tuple12[I,J,K,L,M,N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12)
    }

    def ++[I,J,K,L,M,N,O,P,Q,R,S,T,U](other : Tuple13[I,J,K,L,M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13)
    }

    def ++[I,J,K,L,M,N,O,P,Q,R,S,T,U,V](other : Tuple14[I,J,K,L,M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13,other._14)
    }
  }

  implicit def tup8ToAdder[A,B,C,D,E,F,G,H](tup : Tuple8[A,B,C,D,E,F,G,H]) = new Tuple8Adder(tup)

  class Tuple9Adder[A,B,C,D,E,F,G,H,I](tup : Tuple9[A,B,C,D,E,F,G,H,I]) {
    def :+[J](other : J) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other)
    }

    def ++[J](other : Tuple1[J]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1)
    }

    def ++[J,K](other : Tuple2[J,K]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2)
    }

    def ++[J,K,L](other : Tuple3[J,K,L]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2,other._3)
    }

    def ++[J,K,L,M](other : Tuple4[J,K,L,M]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2,other._3,other._4)
    }

    def ++[J,K,L,M,N](other : Tuple5[J,K,L,M,N]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[J,K,L,M,N,O](other : Tuple6[J,K,L,M,N,O]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[J,K,L,M,N,O,P](other : Tuple7[J,K,L,M,N,O,P]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[J,K,L,M,N,O,P,Q](other : Tuple8[J,K,L,M,N,O,P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[J,K,L,M,N,O,P,Q,R](other : Tuple9[J,K,L,M,N,O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[J,K,L,M,N,O,P,Q,R,S](other : Tuple10[J,K,L,M,N,O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }

    def ++[J,K,L,M,N,O,P,Q,R,S,T](other : Tuple11[J,K,L,M,N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11)
    }

    def ++[J,K,L,M,N,O,P,Q,R,S,T,U](other : Tuple12[J,K,L,M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12)
    }

    def ++[J,K,L,M,N,O,P,Q,R,S,T,U,V](other : Tuple13[J,K,L,M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12,other._13)
    }
  }

  implicit def tup9ToAdder[A,B,C,D,E,F,G,H,I](tup : Tuple9[A,B,C,D,E,F,G,H,I]) = new Tuple9Adder(tup)

  class Tuple10Adder[A,B,C,D,E,F,G,H,I,J](tup : Tuple10[A,B,C,D,E,F,G,H,I,J]) {
    def :+[K](other : K) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other)
    }

    def ++[K](other : Tuple1[K]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1)
    }

    def ++[K,L](other : Tuple2[K,L]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1,other._2)
    }

    def ++[K,L,M](other : Tuple3[K,L,M]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1,other._2,other._3)
    }

    def ++[K,L,M,N](other : Tuple4[K,L,M,N]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1,other._2,other._3,other._4)
    }

    def ++[K,L,M,N,O](other : Tuple5[K,L,M,N,O]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[K,L,M,N,O,P](other : Tuple6[K,L,M,N,O,P]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[K,L,M,N,O,P,Q](other : Tuple7[K,L,M,N,O,P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[K,L,M,N,O,P,Q,R](other : Tuple8[K,L,M,N,O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[K,L,M,N,O,P,Q,R,S](other : Tuple9[K,L,M,N,O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[K,L,M,N,O,P,Q,R,S,T](other : Tuple10[K,L,M,N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }

    def ++[K,L,M,N,O,P,Q,R,S,T,U](other : Tuple11[K,L,M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11)
    }

    def ++[K,L,M,N,O,P,Q,R,S,T,U,V](other : Tuple12[K,L,M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11,other._12)
    }
  }

  implicit def tup10ToAdder[A,B,C,D,E,F,G,H,I,J](tup : Tuple10[A,B,C,D,E,F,G,H,I,J]) = new Tuple10Adder(tup)

  class Tuple11Adder[A,B,C,D,E,F,G,H,I,J,K](tup : Tuple11[A,B,C,D,E,F,G,H,I,J,K]) {
    def :+[L](other : L) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other)
    }

    def ++[L](other : Tuple1[L]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other._1)
    }

    def ++[L,M](other : Tuple2[L,M]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other._1,other._2)
    }

    def ++[L,M,N](other : Tuple3[L,M,N]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other._1,other._2,other._3)
    }

    def ++[L,M,N,O](other : Tuple4[L,M,N,O]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other._1,other._2,other._3,other._4)
    }

    def ++[L,M,N,O,P](other : Tuple5[L,M,N,O,P]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[L,M,N,O,P,Q](other : Tuple6[L,M,N,O,P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[L,M,N,O,P,Q,R](other : Tuple7[L,M,N,O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[L,M,N,O,P,Q,R,S](other : Tuple8[L,M,N,O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[L,M,N,O,P,Q,R,S,T](other : Tuple9[L,M,N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[L,M,N,O,P,Q,R,S,T,U](other : Tuple10[L,M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }

    def ++[L,M,N,O,P,Q,R,S,T,U,V](other : Tuple11[L,M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10,other._11)
    }
  }

  implicit def tup11ToAdder[A,B,C,D,E,F,G,H,I,J,K](tup : Tuple11[A,B,C,D,E,F,G,H,I,J,K]) = new Tuple11Adder(tup)

  class Tuple12Adder[A,B,C,D,E,F,G,H,I,J,K,L](tup : Tuple12[A,B,C,D,E,F,G,H,I,J,K,L]) {
    def :+[M](other : M) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,other)
    }

    def ++[M](other : Tuple1[M]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,other._1)
    }

    def ++[M,N](other : Tuple2[M,N]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,other._1,other._2)
    }

    def ++[M,N,O](other : Tuple3[M,N,O]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,other._1,other._2,other._3)
    }

    def ++[M,N,O,P](other : Tuple4[M,N,O,P]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,other._1,other._2,other._3,other._4)
    }

    def ++[M,N,O,P,Q](other : Tuple5[M,N,O,P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[M,N,O,P,Q,R](other : Tuple6[M,N,O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[M,N,O,P,Q,R,S](other : Tuple7[M,N,O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[M,N,O,P,Q,R,S,T](other : Tuple8[M,N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[M,N,O,P,Q,R,S,T,U](other : Tuple9[M,N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }

    def ++[M,N,O,P,Q,R,S,T,U,V](other : Tuple10[M,N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9,other._10)
    }
  }

  implicit def tup12ToAdder[A,B,C,D,E,F,G,H,I,J,K,L](tup : Tuple12[A,B,C,D,E,F,G,H,I,J,K,L]) = new Tuple12Adder(tup)

  class Tuple13Adder[A,B,C,D,E,F,G,H,I,J,K,L,M](tup : Tuple13[A,B,C,D,E,F,G,H,I,J,K,L,M]) {
    def :+[N](other : N) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,other)
    }

    def ++[N](other : Tuple1[N]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,other._1)
    }

    def ++[N,O](other : Tuple2[N,O]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,other._1,other._2)
    }

    def ++[N,O,P](other : Tuple3[N,O,P]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,other._1,other._2,other._3)
    }

    def ++[N,O,P,Q](other : Tuple4[N,O,P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,other._1,other._2,other._3,other._4)
    }

    def ++[N,O,P,Q,R](other : Tuple5[N,O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[N,O,P,Q,R,S](other : Tuple6[N,O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[N,O,P,Q,R,S,T](other : Tuple7[N,O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[N,O,P,Q,R,S,T,U](other : Tuple8[N,O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }

    def ++[N,O,P,Q,R,S,T,U,V](other : Tuple9[N,O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8,other._9)
    }
  }

  implicit def tup13ToAdder[A,B,C,D,E,F,G,H,I,J,K,L,M](tup : Tuple13[A,B,C,D,E,F,G,H,I,J,K,L,M]) = new Tuple13Adder(tup)

  class Tuple14Adder[A,B,C,D,E,F,G,H,I,J,K,L,M,N](tup : Tuple14[A,B,C,D,E,F,G,H,I,J,K,L,M,N]) {
    def :+[O](other : O) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,other)
    }

    def ++[O](other : Tuple1[O]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,other._1)
    }

    def ++[O,P](other : Tuple2[O,P]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,other._1,other._2)
    }

    def ++[O,P,Q](other : Tuple3[O,P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,other._1,other._2,other._3)
    }

    def ++[O,P,Q,R](other : Tuple4[O,P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,other._1,other._2,other._3,other._4)
    }

    def ++[O,P,Q,R,S](other : Tuple5[O,P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[O,P,Q,R,S,T](other : Tuple6[O,P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[O,P,Q,R,S,T,U](other : Tuple7[O,P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }

    def ++[O,P,Q,R,S,T,U,V](other : Tuple8[O,P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,other._1,other._2,other._3,other._4,other._5,other._6,other._7,other._8)
    }
  }

  implicit def tup14ToAdder[A,B,C,D,E,F,G,H,I,J,K,L,M,N](tup : Tuple14[A,B,C,D,E,F,G,H,I,J,K,L,M,N]) = new Tuple14Adder(tup)

  class Tuple15Adder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O](tup : Tuple15[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O]) {
    def :+[P](other : P) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,other)
    }

    def ++[P](other : Tuple1[P]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,other._1)
    }

    def ++[P,Q](other : Tuple2[P,Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,other._1,other._2)
    }

    def ++[P,Q,R](other : Tuple3[P,Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,other._1,other._2,other._3)
    }

    def ++[P,Q,R,S](other : Tuple4[P,Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,other._1,other._2,other._3,other._4)
    }

    def ++[P,Q,R,S,T](other : Tuple5[P,Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[P,Q,R,S,T,U](other : Tuple6[P,Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,other._1,other._2,other._3,other._4,other._5,other._6)
    }

    def ++[P,Q,R,S,T,U,V](other : Tuple7[P,Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,other._1,other._2,other._3,other._4,other._5,other._6,other._7)
    }
  }

  implicit def tup15ToAdder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O](tup : Tuple15[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O]) = new Tuple15Adder(tup)

  class Tuple16Adder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P](tup : Tuple16[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P]) {
    def :+[Q](other : Q) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,other)
    }

    def ++[Q](other : Tuple1[Q]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,other._1)
    }

    def ++[Q,R](other : Tuple2[Q,R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,other._1,other._2)
    }

    def ++[Q,R,S](other : Tuple3[Q,R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,other._1,other._2,other._3)
    }

    def ++[Q,R,S,T](other : Tuple4[Q,R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,other._1,other._2,other._3,other._4)
    }

    def ++[Q,R,S,T,U](other : Tuple5[Q,R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,other._1,other._2,other._3,other._4,other._5)
    }

    def ++[Q,R,S,T,U,V](other : Tuple6[Q,R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,other._1,other._2,other._3,other._4,other._5,other._6)
    }
  }

  implicit def tup16ToAdder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P](tup : Tuple16[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P]) = new Tuple16Adder(tup)

  class Tuple17Adder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q](tup : Tuple17[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q]) {
    def :+[R](other : R) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,other)
    }

    def ++[R](other : Tuple1[R]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,other._1)
    }

    def ++[R,S](other : Tuple2[R,S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,other._1,other._2)
    }

    def ++[R,S,T](other : Tuple3[R,S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,other._1,other._2,other._3)
    }

    def ++[R,S,T,U](other : Tuple4[R,S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,other._1,other._2,other._3,other._4)
    }

    def ++[R,S,T,U,V](other : Tuple5[R,S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,other._1,other._2,other._3,other._4,other._5)
    }
  }

  implicit def tup17ToAdder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q](tup : Tuple17[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q]) = new Tuple17Adder(tup)

  class Tuple18Adder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R](tup : Tuple18[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R]) {
    def :+[S](other : S) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,other)
    }

    def ++[S](other : Tuple1[S]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,other._1)
    }

    def ++[S,T](other : Tuple2[S,T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,other._1,other._2)
    }

    def ++[S,T,U](other : Tuple3[S,T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,other._1,other._2,other._3)
    }

    def ++[S,T,U,V](other : Tuple4[S,T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,other._1,other._2,other._3,other._4)
    }
  }

  implicit def tup18ToAdder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R](tup : Tuple18[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R]) = new Tuple18Adder(tup)

  class Tuple19Adder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S](tup : Tuple19[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S]) {
    def :+[T](other : T) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,tup._19,other)
    }

    def ++[T](other : Tuple1[T]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,tup._19,other._1)
    }

    def ++[T,U](other : Tuple2[T,U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,tup._19,other._1,other._2)
    }

    def ++[T,U,V](other : Tuple3[T,U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,tup._19,other._1,other._2,other._3)
    }
  }

  implicit def tup19ToAdder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S](tup : Tuple19[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S]) = new Tuple19Adder(tup)

  class Tuple20Adder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T](tup : Tuple20[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T]) {
    def :+[U](other : U) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,tup._19,tup._20,other)
    }

    def ++[U](other : Tuple1[U]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,tup._19,tup._20,other._1)
    }

    def ++[U,V](other : Tuple2[U,V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,tup._19,tup._20,other._1,other._2)
    }
  }

  implicit def tup20ToAdder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T](tup : Tuple20[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T]) = new Tuple20Adder(tup)

  class Tuple21Adder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U](tup : Tuple21[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U]) {
    def :+[V](other : V) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,tup._19,tup._20,tup._21,other)
    }

    def ++[V](other : Tuple1[V]) = {
      (tup._1,tup._2,tup._3,tup._4,tup._5,tup._6,tup._7,tup._8,tup._9,tup._10,tup._11,tup._12,tup._13,tup._14,tup._15,tup._16,tup._17,tup._18,tup._19,tup._20,tup._21,other._1)
    }
  }

  implicit def tup21ToAdder[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U](tup : Tuple21[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U]) = new Tuple21Adder(tup)

}
// end of autogenerated




© 2015 - 2024 Weber Informatics LLC | Privacy Policy