You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2018/11/27 13:59:26 UTC

[8/8] groovy git commit: Move tuple improvements to its own project

Move tuple improvements to its own project


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/892f67cd
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/892f67cd
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/892f67cd

Branch: refs/heads/master
Commit: 892f67cdcad9bb2a6c9d1ccf248639f50c50eb29
Parents: 1606cd5
Author: Daniel Sun <su...@apache.org>
Authored: Tue Nov 27 21:58:45 2018 +0800
Committer: Daniel Sun <su...@apache.org>
Committed: Tue Nov 27 21:58:45 2018 +0800

----------------------------------------------------------------------
 src/main/groovy/groovy/lang/Tuple.java          | 1252 ------------------
 src/main/groovy/groovy/lang/Tuple0.java         |  171 ---
 src/main/groovy/groovy/lang/Tuple1.java         |  189 ---
 src/main/groovy/groovy/lang/Tuple10.java        |  386 ------
 src/main/groovy/groovy/lang/Tuple11.java        |  408 ------
 src/main/groovy/groovy/lang/Tuple12.java        |  429 ------
 src/main/groovy/groovy/lang/Tuple13.java        |  449 -------
 src/main/groovy/groovy/lang/Tuple14.java        |  469 -------
 src/main/groovy/groovy/lang/Tuple15.java        |  490 -------
 src/main/groovy/groovy/lang/Tuple16.java        |  502 -------
 src/main/groovy/groovy/lang/Tuple2.java         |  248 ----
 src/main/groovy/groovy/lang/Tuple3.java         |  239 ----
 src/main/groovy/groovy/lang/Tuple4.java         |  261 ----
 src/main/groovy/groovy/lang/Tuple5.java         |  282 ----
 src/main/groovy/groovy/lang/Tuple6.java         |  303 -----
 src/main/groovy/groovy/lang/Tuple7.java         |  326 -----
 src/main/groovy/groovy/lang/Tuple8.java         |  345 -----
 src/main/groovy/groovy/lang/Tuple9.java         |  366 -----
 .../groovy/groovy/util/function/Consumer0.java  |   64 -
 .../groovy/groovy/util/function/Consumer1.java  |   75 --
 .../groovy/groovy/util/function/Consumer10.java |  194 ---
 .../groovy/groovy/util/function/Consumer11.java |  209 ---
 .../groovy/groovy/util/function/Consumer12.java |  224 ----
 .../groovy/groovy/util/function/Consumer13.java |  239 ----
 .../groovy/groovy/util/function/Consumer14.java |  254 ----
 .../groovy/groovy/util/function/Consumer15.java |  269 ----
 .../groovy/groovy/util/function/Consumer16.java |  284 ----
 .../groovy/groovy/util/function/Consumer2.java  |   90 --
 .../groovy/groovy/util/function/Consumer3.java  |   89 --
 .../groovy/groovy/util/function/Consumer4.java  |  104 --
 .../groovy/groovy/util/function/Consumer5.java  |  119 --
 .../groovy/groovy/util/function/Consumer6.java  |  134 --
 .../groovy/groovy/util/function/Consumer7.java  |  149 ---
 .../groovy/groovy/util/function/Consumer8.java  |  164 ---
 .../groovy/groovy/util/function/Consumer9.java  |  179 ---
 .../groovy/groovy/util/function/Function0.java  |   69 -
 .../groovy/groovy/util/function/Function1.java  |   75 --
 .../groovy/groovy/util/function/Function10.java |  195 ---
 .../groovy/groovy/util/function/Function11.java |  210 ---
 .../groovy/groovy/util/function/Function12.java |  225 ----
 .../groovy/groovy/util/function/Function13.java |  240 ----
 .../groovy/groovy/util/function/Function14.java |  255 ----
 .../groovy/groovy/util/function/Function15.java |  270 ----
 .../groovy/groovy/util/function/Function16.java |  285 ----
 .../groovy/groovy/util/function/Function2.java  |   91 --
 .../groovy/groovy/util/function/Function3.java  |   90 --
 .../groovy/groovy/util/function/Function4.java  |  105 --
 .../groovy/groovy/util/function/Function5.java  |  120 --
 .../groovy/groovy/util/function/Function6.java  |  135 --
 .../groovy/groovy/util/function/Function7.java  |  150 ---
 .../groovy/groovy/util/function/Function8.java  |  165 ---
 .../groovy/groovy/util/function/Function9.java  |  180 ---
 .../runtime/DefaultGroovyStaticMethods.java     |   23 -
 src/test/groovy/bugs/Groovy8887.groovy          |   30 -
 src/test/groovy/lang/TupleTest.java             |  743 -----------
 .../DefaultGroovyStaticMethodsTest.groovy       |   20 -
 56 files changed, 13631 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/892f67cd/src/main/groovy/groovy/lang/Tuple.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/Tuple.java b/src/main/groovy/groovy/lang/Tuple.java
index bd2b34a..30d5bff 100644
--- a/src/main/groovy/groovy/lang/Tuple.java
+++ b/src/main/groovy/groovy/lang/Tuple.java
@@ -18,49 +18,12 @@
  */
 package groovy.lang;
 
-import groovy.util.function.Consumer0;
-import groovy.util.function.Consumer1;
-import groovy.util.function.Consumer10;
-import groovy.util.function.Consumer11;
-import groovy.util.function.Consumer12;
-import groovy.util.function.Consumer13;
-import groovy.util.function.Consumer14;
-import groovy.util.function.Consumer15;
-import groovy.util.function.Consumer16;
-import groovy.util.function.Consumer2;
-import groovy.util.function.Consumer3;
-import groovy.util.function.Consumer4;
-import groovy.util.function.Consumer5;
-import groovy.util.function.Consumer6;
-import groovy.util.function.Consumer7;
-import groovy.util.function.Consumer8;
-import groovy.util.function.Consumer9;
-import groovy.util.function.Function0;
-import groovy.util.function.Function1;
-import groovy.util.function.Function10;
-import groovy.util.function.Function11;
-import groovy.util.function.Function12;
-import groovy.util.function.Function13;
-import groovy.util.function.Function14;
-import groovy.util.function.Function15;
-import groovy.util.function.Function16;
-import groovy.util.function.Function2;
-import groovy.util.function.Function3;
-import groovy.util.function.Function4;
-import groovy.util.function.Function5;
-import groovy.util.function.Function6;
-import groovy.util.function.Function7;
-import groovy.util.function.Function8;
-import groovy.util.function.Function9;
 import org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation;
 
 import java.io.Serializable;
 import java.util.AbstractList;
-import java.util.LinkedHashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
-import java.util.stream.Collector;
 
 /**
  * Represents a list of Objects.
@@ -96,24 +59,6 @@ public class Tuple<E> extends AbstractList<E> implements Serializable, Cloneable
         return contents;
     }
 
-    /**
-     * The degree of this tuple
-     */
-    public final int degree() {
-        return this.size();
-    }
-
-    public final <K> Map<K, ?> toMap(Function1<? super Integer, ? extends K> keyMapper) {
-        Object[] array = toArray();
-        Map<K, Object> result = new LinkedHashMap<>();
-
-        for (int i = 0, n = array.length; i < n; i++) {
-            result.put(keyMapper.apply(i), array[i]);
-        }
-
-        return result;
-    }
-
     @SuppressWarnings("unchecked")
     @Override
     public List<E> subList(int fromIndex, int toIndex) {
@@ -163,11 +108,6 @@ public class Tuple<E> extends AbstractList<E> implements Serializable, Cloneable
         return Integer.compare(thisSize, otherSize);
     }
 
-    @Override
-    public Tuple<E> clone() {
-        return new Tuple<>(this);
-    }
-
     @SuppressWarnings("unchecked")
     private static <T> int compare(T t1, T t2) {
         return t1 == null && t2 == null
@@ -299,1196 +239,4 @@ public class Tuple<E> extends AbstractList<E> implements Serializable, Cloneable
         return new Tuple16<>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16);
     }
 
-
-    /**
-     * Construct a tuple function of degree 0.
-     */
-    public static <R> Function1<Tuple0, R> function(Function0<R> function) {
-        return t -> function.get();
-    }
-
-    /**
-     * Construct a tuple function of degree 1.
-     */
-    public static <T1, R> Function1<Tuple1<T1>, R> function(Function1<T1, R> function) {
-        return t -> function.apply(t.getV1());
-    }
-
-    /**
-     * Construct a tuple function of degree 2.
-     */
-    public static <T1, T2, R> Function1<Tuple2<T1, T2>, R> function(Function2<T1, T2, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2());
-    }
-
-    /**
-     * Construct a tuple function of degree 3.
-     */
-    public static <T1, T2, T3, R> Function1<Tuple3<T1, T2, T3>, R> function(Function3<T1, T2, T3, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3());
-    }
-
-    /**
-     * Construct a tuple function of degree 4.
-     */
-    public static <T1, T2, T3, T4, R> Function1<Tuple4<T1, T2, T3, T4>, R> function(Function4<T1, T2, T3, T4, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4());
-    }
-
-    /**
-     * Construct a tuple function of degree 5.
-     */
-    public static <T1, T2, T3, T4, T5, R> Function1<Tuple5<T1, T2, T3, T4, T5>, R> function(Function5<T1, T2, T3, T4, T5, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5());
-    }
-
-    /**
-     * Construct a tuple function of degree 6.
-     */
-    public static <T1, T2, T3, T4, T5, T6, R> Function1<Tuple6<T1, T2, T3, T4, T5, T6>, R> function(Function6<T1, T2, T3, T4, T5, T6, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6());
-    }
-
-    /**
-     * Construct a tuple function of degree 7.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, R> Function1<Tuple7<T1, T2, T3, T4, T5, T6, T7>, R> function(Function7<T1, T2, T3, T4, T5, T6, T7, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7());
-    }
-
-    /**
-     * Construct a tuple function of degree 8.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, R> Function1<Tuple8<T1, T2, T3, T4, T5, T6, T7, T8>, R> function(Function8<T1, T2, T3, T4, T5, T6, T7, T8, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8());
-    }
-
-    /**
-     * Construct a tuple function of degree 9.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, R> Function1<Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9>, R> function(Function9<T1, T2, T3, T4, T5, T6, T7, T8, T9, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9());
-    }
-
-    /**
-     * Construct a tuple function of degree 10.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R> Function1<Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>, R> function(Function10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10());
-    }
-
-    /**
-     * Construct a tuple function of degree 11.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R> Function1<Tuple11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>, R> function(Function11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11());
-    }
-
-    /**
-     * Construct a tuple function of degree 12.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R> Function1<Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>, R> function(Function12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11(), t.getV12());
-    }
-
-    /**
-     * Construct a tuple function of degree 13.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R> Function1<Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>, R> function(Function13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11(), t.getV12(), t.getV13());
-    }
-
-    /**
-     * Construct a tuple function of degree 14.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R> Function1<Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>, R> function(Function14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11(), t.getV12(), t.getV13(), t.getV14());
-    }
-
-    /**
-     * Construct a tuple function of degree 15.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R> Function1<Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>, R> function(Function15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11(), t.getV12(), t.getV13(), t.getV14(), t.getV15());
-    }
-
-    /**
-     * Construct a tuple function of degree 16.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R> Function1<Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>, R> function(Function16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, R> function) {
-        return t -> function.apply(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11(), t.getV12(), t.getV13(), t.getV14(), t.getV15(), t.getV16());
-    }
-
-
-    /**
-     * Construct a tuple consumer of degree 0.
-     */
-    public static Consumer1<Tuple0> consumer(Consumer0 consumer) {
-        return t -> consumer.run();
-    }
-
-    /**
-     * Construct a tuple consumer of degree 1.
-     */
-    public static <T1> Consumer1<Tuple1<T1>> consumer(Consumer1<T1> consumer) {
-        return t -> consumer.accept(t.getV1());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 2.
-     */
-    public static <T1, T2> Consumer1<Tuple2<T1, T2>> consumer(Consumer2<T1, T2> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 3.
-     */
-    public static <T1, T2, T3> Consumer1<Tuple3<T1, T2, T3>> consumer(Consumer3<T1, T2, T3> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 4.
-     */
-    public static <T1, T2, T3, T4> Consumer1<Tuple4<T1, T2, T3, T4>> consumer(Consumer4<T1, T2, T3, T4> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 5.
-     */
-    public static <T1, T2, T3, T4, T5> Consumer1<Tuple5<T1, T2, T3, T4, T5>> consumer(Consumer5<T1, T2, T3, T4, T5> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 6.
-     */
-    public static <T1, T2, T3, T4, T5, T6> Consumer1<Tuple6<T1, T2, T3, T4, T5, T6>> consumer(Consumer6<T1, T2, T3, T4, T5, T6> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 7.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7> Consumer1<Tuple7<T1, T2, T3, T4, T5, T6, T7>> consumer(Consumer7<T1, T2, T3, T4, T5, T6, T7> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 8.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8> Consumer1<Tuple8<T1, T2, T3, T4, T5, T6, T7, T8>> consumer(Consumer8<T1, T2, T3, T4, T5, T6, T7, T8> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 9.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9> Consumer1<Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9>> consumer(Consumer9<T1, T2, T3, T4, T5, T6, T7, T8, T9> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 10.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Consumer1<Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>> consumer(Consumer10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 11.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Consumer1<Tuple11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>> consumer(Consumer11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 12.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Consumer1<Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>> consumer(Consumer12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11(), t.getV12());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 13.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Consumer1<Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>> consumer(Consumer13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11(), t.getV12(), t.getV13());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 14.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Consumer1<Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>> consumer(Consumer14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11(), t.getV12(), t.getV13(), t.getV14());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 15.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Consumer1<Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>> consumer(Consumer15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11(), t.getV12(), t.getV13(), t.getV14(), t.getV15());
-    }
-
-    /**
-     * Construct a tuple consumer of degree 16.
-     */
-    public static <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Consumer1<Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>> consumer(Consumer16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> consumer) {
-        return t -> consumer.accept(t.getV1(), t.getV2(), t.getV3(), t.getV4(), t.getV5(), t.getV6(), t.getV7(), t.getV8(), t.getV9(), t.getV10(), t.getV11(), t.getV12(), t.getV13(), t.getV14(), t.getV15(), t.getV16());
-    }
-
-    /**
-     * Construct a tuple collector of degree 1.
-     */
-    public static <T, A1, D1> Collector<T, Tuple1<A1>, Tuple1<D1>> collectors(
-            Collector<? super T, A1, D1> collector1
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 2.
-     */
-    public static <T, A1, A2, D1, D2> Collector<T, Tuple2<A1, A2>, Tuple2<D1, D2>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 3.
-     */
-    public static <T, A1, A2, A3, D1, D2, D3> Collector<T, Tuple3<A1, A2, A3>, Tuple3<D1, D2, D3>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 4.
-     */
-    public static <T, A1, A2, A3, A4, D1, D2, D3, D4> Collector<T, Tuple4<A1, A2, A3, A4>, Tuple4<D1, D2, D3, D4>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 5.
-     */
-    public static <T, A1, A2, A3, A4, A5, D1, D2, D3, D4, D5> Collector<T, Tuple5<A1, A2, A3, A4, A5>, Tuple5<D1, D2, D3, D4, D5>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 6.
-     */
-    public static <T, A1, A2, A3, A4, A5, A6, D1, D2, D3, D4, D5, D6> Collector<T, Tuple6<A1, A2, A3, A4, A5, A6>, Tuple6<D1, D2, D3, D4, D5, D6>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-            , Collector<? super T, A6, D6> collector6
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                        , collector6.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                    collector6.accumulator().accept(a.getV6(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                        , collector6.combiner().apply(a1.getV6(), a2.getV6())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                        , collector6.finisher().apply(a.getV6())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 7.
-     */
-    public static <T, A1, A2, A3, A4, A5, A6, A7, D1, D2, D3, D4, D5, D6, D7> Collector<T, Tuple7<A1, A2, A3, A4, A5, A6, A7>, Tuple7<D1, D2, D3, D4, D5, D6, D7>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-            , Collector<? super T, A6, D6> collector6
-            , Collector<? super T, A7, D7> collector7
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                        , collector6.supplier().get()
-                        , collector7.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                    collector6.accumulator().accept(a.getV6(), t);
-                    collector7.accumulator().accept(a.getV7(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                        , collector6.combiner().apply(a1.getV6(), a2.getV6())
-                        , collector7.combiner().apply(a1.getV7(), a2.getV7())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                        , collector6.finisher().apply(a.getV6())
-                        , collector7.finisher().apply(a.getV7())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 8.
-     */
-    public static <T, A1, A2, A3, A4, A5, A6, A7, A8, D1, D2, D3, D4, D5, D6, D7, D8> Collector<T, Tuple8<A1, A2, A3, A4, A5, A6, A7, A8>, Tuple8<D1, D2, D3, D4, D5, D6, D7, D8>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-            , Collector<? super T, A6, D6> collector6
-            , Collector<? super T, A7, D7> collector7
-            , Collector<? super T, A8, D8> collector8
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                        , collector6.supplier().get()
-                        , collector7.supplier().get()
-                        , collector8.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                    collector6.accumulator().accept(a.getV6(), t);
-                    collector7.accumulator().accept(a.getV7(), t);
-                    collector8.accumulator().accept(a.getV8(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                        , collector6.combiner().apply(a1.getV6(), a2.getV6())
-                        , collector7.combiner().apply(a1.getV7(), a2.getV7())
-                        , collector8.combiner().apply(a1.getV8(), a2.getV8())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                        , collector6.finisher().apply(a.getV6())
-                        , collector7.finisher().apply(a.getV7())
-                        , collector8.finisher().apply(a.getV8())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 9.
-     */
-    public static <T, A1, A2, A3, A4, A5, A6, A7, A8, A9, D1, D2, D3, D4, D5, D6, D7, D8, D9> Collector<T, Tuple9<A1, A2, A3, A4, A5, A6, A7, A8, A9>, Tuple9<D1, D2, D3, D4, D5, D6, D7, D8, D9>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-            , Collector<? super T, A6, D6> collector6
-            , Collector<? super T, A7, D7> collector7
-            , Collector<? super T, A8, D8> collector8
-            , Collector<? super T, A9, D9> collector9
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                        , collector6.supplier().get()
-                        , collector7.supplier().get()
-                        , collector8.supplier().get()
-                        , collector9.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                    collector6.accumulator().accept(a.getV6(), t);
-                    collector7.accumulator().accept(a.getV7(), t);
-                    collector8.accumulator().accept(a.getV8(), t);
-                    collector9.accumulator().accept(a.getV9(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                        , collector6.combiner().apply(a1.getV6(), a2.getV6())
-                        , collector7.combiner().apply(a1.getV7(), a2.getV7())
-                        , collector8.combiner().apply(a1.getV8(), a2.getV8())
-                        , collector9.combiner().apply(a1.getV9(), a2.getV9())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                        , collector6.finisher().apply(a.getV6())
-                        , collector7.finisher().apply(a.getV7())
-                        , collector8.finisher().apply(a.getV8())
-                        , collector9.finisher().apply(a.getV9())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 10.
-     */
-    public static <T, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10> Collector<T, Tuple10<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>, Tuple10<D1, D2, D3, D4, D5, D6, D7, D8, D9, D10>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-            , Collector<? super T, A6, D6> collector6
-            , Collector<? super T, A7, D7> collector7
-            , Collector<? super T, A8, D8> collector8
-            , Collector<? super T, A9, D9> collector9
-            , Collector<? super T, A10, D10> collector10
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                        , collector6.supplier().get()
-                        , collector7.supplier().get()
-                        , collector8.supplier().get()
-                        , collector9.supplier().get()
-                        , collector10.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                    collector6.accumulator().accept(a.getV6(), t);
-                    collector7.accumulator().accept(a.getV7(), t);
-                    collector8.accumulator().accept(a.getV8(), t);
-                    collector9.accumulator().accept(a.getV9(), t);
-                    collector10.accumulator().accept(a.getV10(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                        , collector6.combiner().apply(a1.getV6(), a2.getV6())
-                        , collector7.combiner().apply(a1.getV7(), a2.getV7())
-                        , collector8.combiner().apply(a1.getV8(), a2.getV8())
-                        , collector9.combiner().apply(a1.getV9(), a2.getV9())
-                        , collector10.combiner().apply(a1.getV10(), a2.getV10())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                        , collector6.finisher().apply(a.getV6())
-                        , collector7.finisher().apply(a.getV7())
-                        , collector8.finisher().apply(a.getV8())
-                        , collector9.finisher().apply(a.getV9())
-                        , collector10.finisher().apply(a.getV10())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 11.
-     */
-    public static <T, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11> Collector<T, Tuple11<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>, Tuple11<D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-            , Collector<? super T, A6, D6> collector6
-            , Collector<? super T, A7, D7> collector7
-            , Collector<? super T, A8, D8> collector8
-            , Collector<? super T, A9, D9> collector9
-            , Collector<? super T, A10, D10> collector10
-            , Collector<? super T, A11, D11> collector11
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                        , collector6.supplier().get()
-                        , collector7.supplier().get()
-                        , collector8.supplier().get()
-                        , collector9.supplier().get()
-                        , collector10.supplier().get()
-                        , collector11.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                    collector6.accumulator().accept(a.getV6(), t);
-                    collector7.accumulator().accept(a.getV7(), t);
-                    collector8.accumulator().accept(a.getV8(), t);
-                    collector9.accumulator().accept(a.getV9(), t);
-                    collector10.accumulator().accept(a.getV10(), t);
-                    collector11.accumulator().accept(a.getV11(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                        , collector6.combiner().apply(a1.getV6(), a2.getV6())
-                        , collector7.combiner().apply(a1.getV7(), a2.getV7())
-                        , collector8.combiner().apply(a1.getV8(), a2.getV8())
-                        , collector9.combiner().apply(a1.getV9(), a2.getV9())
-                        , collector10.combiner().apply(a1.getV10(), a2.getV10())
-                        , collector11.combiner().apply(a1.getV11(), a2.getV11())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                        , collector6.finisher().apply(a.getV6())
-                        , collector7.finisher().apply(a.getV7())
-                        , collector8.finisher().apply(a.getV8())
-                        , collector9.finisher().apply(a.getV9())
-                        , collector10.finisher().apply(a.getV10())
-                        , collector11.finisher().apply(a.getV11())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 12.
-     */
-    public static <T, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12> Collector<T, Tuple12<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>, Tuple12<D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-            , Collector<? super T, A6, D6> collector6
-            , Collector<? super T, A7, D7> collector7
-            , Collector<? super T, A8, D8> collector8
-            , Collector<? super T, A9, D9> collector9
-            , Collector<? super T, A10, D10> collector10
-            , Collector<? super T, A11, D11> collector11
-            , Collector<? super T, A12, D12> collector12
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                        , collector6.supplier().get()
-                        , collector7.supplier().get()
-                        , collector8.supplier().get()
-                        , collector9.supplier().get()
-                        , collector10.supplier().get()
-                        , collector11.supplier().get()
-                        , collector12.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                    collector6.accumulator().accept(a.getV6(), t);
-                    collector7.accumulator().accept(a.getV7(), t);
-                    collector8.accumulator().accept(a.getV8(), t);
-                    collector9.accumulator().accept(a.getV9(), t);
-                    collector10.accumulator().accept(a.getV10(), t);
-                    collector11.accumulator().accept(a.getV11(), t);
-                    collector12.accumulator().accept(a.getV12(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                        , collector6.combiner().apply(a1.getV6(), a2.getV6())
-                        , collector7.combiner().apply(a1.getV7(), a2.getV7())
-                        , collector8.combiner().apply(a1.getV8(), a2.getV8())
-                        , collector9.combiner().apply(a1.getV9(), a2.getV9())
-                        , collector10.combiner().apply(a1.getV10(), a2.getV10())
-                        , collector11.combiner().apply(a1.getV11(), a2.getV11())
-                        , collector12.combiner().apply(a1.getV12(), a2.getV12())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                        , collector6.finisher().apply(a.getV6())
-                        , collector7.finisher().apply(a.getV7())
-                        , collector8.finisher().apply(a.getV8())
-                        , collector9.finisher().apply(a.getV9())
-                        , collector10.finisher().apply(a.getV10())
-                        , collector11.finisher().apply(a.getV11())
-                        , collector12.finisher().apply(a.getV12())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 13.
-     */
-    public static <T, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13> Collector<T, Tuple13<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>, Tuple13<D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-            , Collector<? super T, A6, D6> collector6
-            , Collector<? super T, A7, D7> collector7
-            , Collector<? super T, A8, D8> collector8
-            , Collector<? super T, A9, D9> collector9
-            , Collector<? super T, A10, D10> collector10
-            , Collector<? super T, A11, D11> collector11
-            , Collector<? super T, A12, D12> collector12
-            , Collector<? super T, A13, D13> collector13
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                        , collector6.supplier().get()
-                        , collector7.supplier().get()
-                        , collector8.supplier().get()
-                        , collector9.supplier().get()
-                        , collector10.supplier().get()
-                        , collector11.supplier().get()
-                        , collector12.supplier().get()
-                        , collector13.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                    collector6.accumulator().accept(a.getV6(), t);
-                    collector7.accumulator().accept(a.getV7(), t);
-                    collector8.accumulator().accept(a.getV8(), t);
-                    collector9.accumulator().accept(a.getV9(), t);
-                    collector10.accumulator().accept(a.getV10(), t);
-                    collector11.accumulator().accept(a.getV11(), t);
-                    collector12.accumulator().accept(a.getV12(), t);
-                    collector13.accumulator().accept(a.getV13(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                        , collector6.combiner().apply(a1.getV6(), a2.getV6())
-                        , collector7.combiner().apply(a1.getV7(), a2.getV7())
-                        , collector8.combiner().apply(a1.getV8(), a2.getV8())
-                        , collector9.combiner().apply(a1.getV9(), a2.getV9())
-                        , collector10.combiner().apply(a1.getV10(), a2.getV10())
-                        , collector11.combiner().apply(a1.getV11(), a2.getV11())
-                        , collector12.combiner().apply(a1.getV12(), a2.getV12())
-                        , collector13.combiner().apply(a1.getV13(), a2.getV13())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                        , collector6.finisher().apply(a.getV6())
-                        , collector7.finisher().apply(a.getV7())
-                        , collector8.finisher().apply(a.getV8())
-                        , collector9.finisher().apply(a.getV9())
-                        , collector10.finisher().apply(a.getV10())
-                        , collector11.finisher().apply(a.getV11())
-                        , collector12.finisher().apply(a.getV12())
-                        , collector13.finisher().apply(a.getV13())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 14.
-     */
-    public static <T, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14> Collector<T, Tuple14<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>, Tuple14<D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-            , Collector<? super T, A6, D6> collector6
-            , Collector<? super T, A7, D7> collector7
-            , Collector<? super T, A8, D8> collector8
-            , Collector<? super T, A9, D9> collector9
-            , Collector<? super T, A10, D10> collector10
-            , Collector<? super T, A11, D11> collector11
-            , Collector<? super T, A12, D12> collector12
-            , Collector<? super T, A13, D13> collector13
-            , Collector<? super T, A14, D14> collector14
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                        , collector6.supplier().get()
-                        , collector7.supplier().get()
-                        , collector8.supplier().get()
-                        , collector9.supplier().get()
-                        , collector10.supplier().get()
-                        , collector11.supplier().get()
-                        , collector12.supplier().get()
-                        , collector13.supplier().get()
-                        , collector14.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                    collector6.accumulator().accept(a.getV6(), t);
-                    collector7.accumulator().accept(a.getV7(), t);
-                    collector8.accumulator().accept(a.getV8(), t);
-                    collector9.accumulator().accept(a.getV9(), t);
-                    collector10.accumulator().accept(a.getV10(), t);
-                    collector11.accumulator().accept(a.getV11(), t);
-                    collector12.accumulator().accept(a.getV12(), t);
-                    collector13.accumulator().accept(a.getV13(), t);
-                    collector14.accumulator().accept(a.getV14(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                        , collector6.combiner().apply(a1.getV6(), a2.getV6())
-                        , collector7.combiner().apply(a1.getV7(), a2.getV7())
-                        , collector8.combiner().apply(a1.getV8(), a2.getV8())
-                        , collector9.combiner().apply(a1.getV9(), a2.getV9())
-                        , collector10.combiner().apply(a1.getV10(), a2.getV10())
-                        , collector11.combiner().apply(a1.getV11(), a2.getV11())
-                        , collector12.combiner().apply(a1.getV12(), a2.getV12())
-                        , collector13.combiner().apply(a1.getV13(), a2.getV13())
-                        , collector14.combiner().apply(a1.getV14(), a2.getV14())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                        , collector6.finisher().apply(a.getV6())
-                        , collector7.finisher().apply(a.getV7())
-                        , collector8.finisher().apply(a.getV8())
-                        , collector9.finisher().apply(a.getV9())
-                        , collector10.finisher().apply(a.getV10())
-                        , collector11.finisher().apply(a.getV11())
-                        , collector12.finisher().apply(a.getV12())
-                        , collector13.finisher().apply(a.getV13())
-                        , collector14.finisher().apply(a.getV14())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 15.
-     */
-    public static <T, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15> Collector<T, Tuple15<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>, Tuple15<D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-            , Collector<? super T, A6, D6> collector6
-            , Collector<? super T, A7, D7> collector7
-            , Collector<? super T, A8, D8> collector8
-            , Collector<? super T, A9, D9> collector9
-            , Collector<? super T, A10, D10> collector10
-            , Collector<? super T, A11, D11> collector11
-            , Collector<? super T, A12, D12> collector12
-            , Collector<? super T, A13, D13> collector13
-            , Collector<? super T, A14, D14> collector14
-            , Collector<? super T, A15, D15> collector15
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                        , collector6.supplier().get()
-                        , collector7.supplier().get()
-                        , collector8.supplier().get()
-                        , collector9.supplier().get()
-                        , collector10.supplier().get()
-                        , collector11.supplier().get()
-                        , collector12.supplier().get()
-                        , collector13.supplier().get()
-                        , collector14.supplier().get()
-                        , collector15.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                    collector6.accumulator().accept(a.getV6(), t);
-                    collector7.accumulator().accept(a.getV7(), t);
-                    collector8.accumulator().accept(a.getV8(), t);
-                    collector9.accumulator().accept(a.getV9(), t);
-                    collector10.accumulator().accept(a.getV10(), t);
-                    collector11.accumulator().accept(a.getV11(), t);
-                    collector12.accumulator().accept(a.getV12(), t);
-                    collector13.accumulator().accept(a.getV13(), t);
-                    collector14.accumulator().accept(a.getV14(), t);
-                    collector15.accumulator().accept(a.getV15(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                        , collector6.combiner().apply(a1.getV6(), a2.getV6())
-                        , collector7.combiner().apply(a1.getV7(), a2.getV7())
-                        , collector8.combiner().apply(a1.getV8(), a2.getV8())
-                        , collector9.combiner().apply(a1.getV9(), a2.getV9())
-                        , collector10.combiner().apply(a1.getV10(), a2.getV10())
-                        , collector11.combiner().apply(a1.getV11(), a2.getV11())
-                        , collector12.combiner().apply(a1.getV12(), a2.getV12())
-                        , collector13.combiner().apply(a1.getV13(), a2.getV13())
-                        , collector14.combiner().apply(a1.getV14(), a2.getV14())
-                        , collector15.combiner().apply(a1.getV15(), a2.getV15())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                        , collector6.finisher().apply(a.getV6())
-                        , collector7.finisher().apply(a.getV7())
-                        , collector8.finisher().apply(a.getV8())
-                        , collector9.finisher().apply(a.getV9())
-                        , collector10.finisher().apply(a.getV10())
-                        , collector11.finisher().apply(a.getV11())
-                        , collector12.finisher().apply(a.getV12())
-                        , collector13.finisher().apply(a.getV13())
-                        , collector14.finisher().apply(a.getV14())
-                        , collector15.finisher().apply(a.getV15())
-                )
-        );
-    }
-
-    /**
-     * Construct a tuple collector of degree 16.
-     */
-    public static <T, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16> Collector<T, Tuple16<A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>, Tuple16<D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16>> collectors(
-            Collector<? super T, A1, D1> collector1
-            , Collector<? super T, A2, D2> collector2
-            , Collector<? super T, A3, D3> collector3
-            , Collector<? super T, A4, D4> collector4
-            , Collector<? super T, A5, D5> collector5
-            , Collector<? super T, A6, D6> collector6
-            , Collector<? super T, A7, D7> collector7
-            , Collector<? super T, A8, D8> collector8
-            , Collector<? super T, A9, D9> collector9
-            , Collector<? super T, A10, D10> collector10
-            , Collector<? super T, A11, D11> collector11
-            , Collector<? super T, A12, D12> collector12
-            , Collector<? super T, A13, D13> collector13
-            , Collector<? super T, A14, D14> collector14
-            , Collector<? super T, A15, D15> collector15
-            , Collector<? super T, A16, D16> collector16
-    ) {
-        return Collector.of(
-                () -> tuple(
-                        collector1.supplier().get()
-                        , collector2.supplier().get()
-                        , collector3.supplier().get()
-                        , collector4.supplier().get()
-                        , collector5.supplier().get()
-                        , collector6.supplier().get()
-                        , collector7.supplier().get()
-                        , collector8.supplier().get()
-                        , collector9.supplier().get()
-                        , collector10.supplier().get()
-                        , collector11.supplier().get()
-                        , collector12.supplier().get()
-                        , collector13.supplier().get()
-                        , collector14.supplier().get()
-                        , collector15.supplier().get()
-                        , collector16.supplier().get()
-                ),
-                (a, t) -> {
-                    collector1.accumulator().accept(a.getV1(), t);
-                    collector2.accumulator().accept(a.getV2(), t);
-                    collector3.accumulator().accept(a.getV3(), t);
-                    collector4.accumulator().accept(a.getV4(), t);
-                    collector5.accumulator().accept(a.getV5(), t);
-                    collector6.accumulator().accept(a.getV6(), t);
-                    collector7.accumulator().accept(a.getV7(), t);
-                    collector8.accumulator().accept(a.getV8(), t);
-                    collector9.accumulator().accept(a.getV9(), t);
-                    collector10.accumulator().accept(a.getV10(), t);
-                    collector11.accumulator().accept(a.getV11(), t);
-                    collector12.accumulator().accept(a.getV12(), t);
-                    collector13.accumulator().accept(a.getV13(), t);
-                    collector14.accumulator().accept(a.getV14(), t);
-                    collector15.accumulator().accept(a.getV15(), t);
-                    collector16.accumulator().accept(a.getV16(), t);
-                },
-                (a1, a2) -> tuple(
-                        collector1.combiner().apply(a1.getV1(), a2.getV1())
-                        , collector2.combiner().apply(a1.getV2(), a2.getV2())
-                        , collector3.combiner().apply(a1.getV3(), a2.getV3())
-                        , collector4.combiner().apply(a1.getV4(), a2.getV4())
-                        , collector5.combiner().apply(a1.getV5(), a2.getV5())
-                        , collector6.combiner().apply(a1.getV6(), a2.getV6())
-                        , collector7.combiner().apply(a1.getV7(), a2.getV7())
-                        , collector8.combiner().apply(a1.getV8(), a2.getV8())
-                        , collector9.combiner().apply(a1.getV9(), a2.getV9())
-                        , collector10.combiner().apply(a1.getV10(), a2.getV10())
-                        , collector11.combiner().apply(a1.getV11(), a2.getV11())
-                        , collector12.combiner().apply(a1.getV12(), a2.getV12())
-                        , collector13.combiner().apply(a1.getV13(), a2.getV13())
-                        , collector14.combiner().apply(a1.getV14(), a2.getV14())
-                        , collector15.combiner().apply(a1.getV15(), a2.getV15())
-                        , collector16.combiner().apply(a1.getV16(), a2.getV16())
-                ),
-                a -> tuple(
-                        collector1.finisher().apply(a.getV1())
-                        , collector2.finisher().apply(a.getV2())
-                        , collector3.finisher().apply(a.getV3())
-                        , collector4.finisher().apply(a.getV4())
-                        , collector5.finisher().apply(a.getV5())
-                        , collector6.finisher().apply(a.getV6())
-                        , collector7.finisher().apply(a.getV7())
-                        , collector8.finisher().apply(a.getV8())
-                        , collector9.finisher().apply(a.getV9())
-                        , collector10.finisher().apply(a.getV10())
-                        , collector11.finisher().apply(a.getV11())
-                        , collector12.finisher().apply(a.getV12())
-                        , collector13.finisher().apply(a.getV13())
-                        , collector14.finisher().apply(a.getV14())
-                        , collector15.finisher().apply(a.getV15())
-                        , collector16.finisher().apply(a.getV16())
-                )
-        );
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/groovy/blob/892f67cd/src/main/groovy/groovy/lang/Tuple0.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/Tuple0.java b/src/main/groovy/groovy/lang/Tuple0.java
index c7c4d9c..4901d79 100644
--- a/src/main/groovy/groovy/lang/Tuple0.java
+++ b/src/main/groovy/groovy/lang/Tuple0.java
@@ -18,8 +18,6 @@
  */
 package groovy.lang;
 
-import groovy.util.function.Function0;
-
 /**
  * Represents a list of 0 typed Object.
  *
@@ -31,173 +29,4 @@ public final class Tuple0 extends Tuple {
 
     private Tuple0() {}
 
-    /**
-     * Concatenate a value to this tuple.
-     */
-    public final <T1> Tuple1<T1> concat(T1 value) {
-        return new Tuple1<>(value);
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final Tuple0 concat(Tuple0 tuple) {
-        return INSTANCE;
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1> Tuple1<T1> concat(Tuple1<T1> tuple) {
-        return new Tuple1<>(tuple.getV1());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2> Tuple2<T1, T2> concat(Tuple2<T1, T2> tuple) {
-        return new Tuple2<>(tuple.getV1(), tuple.getV2());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3> Tuple3<T1, T2, T3> concat(Tuple3<T1, T2, T3> tuple) {
-        return new Tuple3<>(tuple.getV1(), tuple.getV2(), tuple.getV3());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4> Tuple4<T1, T2, T3, T4> concat(Tuple4<T1, T2, T3, T4> tuple) {
-        return new Tuple4<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5> Tuple5<T1, T2, T3, T4, T5> concat(Tuple5<T1, T2, T3, T4, T5> tuple) {
-        return new Tuple5<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5, T6> Tuple6<T1, T2, T3, T4, T5, T6> concat(Tuple6<T1, T2, T3, T4, T5, T6> tuple) {
-        return new Tuple6<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5, T6, T7> Tuple7<T1, T2, T3, T4, T5, T6, T7> concat(Tuple7<T1, T2, T3, T4, T5, T6, T7> tuple) {
-        return new Tuple7<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5, T6, T7, T8> Tuple8<T1, T2, T3, T4, T5, T6, T7, T8> concat(Tuple8<T1, T2, T3, T4, T5, T6, T7, T8> tuple) {
-        return new Tuple8<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5, T6, T7, T8, T9> Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> concat(Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> tuple) {
-        return new Tuple9<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> concat(Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> tuple) {
-        return new Tuple10<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tuple11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> concat(Tuple11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> tuple) {
-        return new Tuple11<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10(), tuple.getV11());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> concat(Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> tuple) {
-        return new Tuple12<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10(), tuple.getV11(), tuple.getV12());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> concat(Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> tuple) {
-        return new Tuple13<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10(), tuple.getV11(), tuple.getV12(), tuple.getV13());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> concat(Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> tuple) {
-        return new Tuple14<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10(), tuple.getV11(), tuple.getV12(), tuple.getV13(), tuple.getV14());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> concat(Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> tuple) {
-        return new Tuple15<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10(), tuple.getV11(), tuple.getV12(), tuple.getV13(), tuple.getV14(), tuple.getV15());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> concat(Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> tuple) {
-        return new Tuple16<>(tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10(), tuple.getV11(), tuple.getV12(), tuple.getV13(), tuple.getV14(), tuple.getV15(), tuple.getV16());
-    }
-
-    /**
-     * Split this tuple into two tuples of degree 0 and 0.
-     */
-    public final Tuple2<Tuple0, Tuple0> split0() {
-        return new Tuple2<>(limit0(), skip0());
-    }
-
-    /**
-     * Limit this tuple to degree 0.
-     */
-    public final Tuple0 limit0() {
-        return this;
-    }
-
-    /**
-     * Skip 0 degrees from this tuple.
-     */
-    public final Tuple0 skip0() {
-        return this;
-    }
-
-    /**
-     * Apply this tuple as arguments to a function.
-     */
-    public final <R> R map(Function0<? extends R> function) {
-        return function.apply();
-    }
-
-    /**
-     * Maps the attributes of this tuple using a mapper function.
-     */
-    public final <R> Tuple0 mapAll(Function0<? extends R> function) {
-        if (null != function) {
-            function.apply();
-        }
-
-        return INSTANCE;
-    }
-
-    @Override
-    public Tuple0 clone() {
-        return INSTANCE;
-    }
 }

http://git-wip-us.apache.org/repos/asf/groovy/blob/892f67cd/src/main/groovy/groovy/lang/Tuple1.java
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/lang/Tuple1.java b/src/main/groovy/groovy/lang/Tuple1.java
index bef131c..e628e89 100644
--- a/src/main/groovy/groovy/lang/Tuple1.java
+++ b/src/main/groovy/groovy/lang/Tuple1.java
@@ -18,8 +18,6 @@
  */
 package groovy.lang;
 
-import groovy.util.function.Function1;
-
 /**
  * Represents a list of 1 typed Object.
  *
@@ -47,191 +45,4 @@ public final class Tuple1<T1> extends Tuple {
     public T1 getV1() {
         return v1;
     }
-
-    /**
-     * Concatenate a value to this tuple.
-     */
-    public final <T2> Tuple2<T1, T2> concat(T2 value) {
-        return new Tuple2<>(v1, value);
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final Tuple1<T1> concat(Tuple0 tuple) {
-        return new Tuple1<>(v1);
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2> Tuple2<T1, T2> concat(Tuple1<T2> tuple) {
-        return new Tuple2<>(v1, tuple.getV1());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3> Tuple3<T1, T2, T3> concat(Tuple2<T2, T3> tuple) {
-        return new Tuple3<>(v1, tuple.getV1(), tuple.getV2());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4> Tuple4<T1, T2, T3, T4> concat(Tuple3<T2, T3, T4> tuple) {
-        return new Tuple4<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5> Tuple5<T1, T2, T3, T4, T5> concat(Tuple4<T2, T3, T4, T5> tuple) {
-        return new Tuple5<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5, T6> Tuple6<T1, T2, T3, T4, T5, T6> concat(Tuple5<T2, T3, T4, T5, T6> tuple) {
-        return new Tuple6<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5, T6, T7> Tuple7<T1, T2, T3, T4, T5, T6, T7> concat(Tuple6<T2, T3, T4, T5, T6, T7> tuple) {
-        return new Tuple7<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5, T6, T7, T8> Tuple8<T1, T2, T3, T4, T5, T6, T7, T8> concat(Tuple7<T2, T3, T4, T5, T6, T7, T8> tuple) {
-        return new Tuple8<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5, T6, T7, T8, T9> Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> concat(Tuple8<T2, T3, T4, T5, T6, T7, T8, T9> tuple) {
-        return new Tuple9<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5, T6, T7, T8, T9, T10> Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> concat(Tuple9<T2, T3, T4, T5, T6, T7, T8, T9, T10> tuple) {
-        return new Tuple10<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Tuple11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> concat(Tuple10<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> tuple) {
-        return new Tuple11<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> concat(Tuple11<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> tuple) {
-        return new Tuple12<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10(), tuple.getV11());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> concat(Tuple12<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> tuple) {
-        return new Tuple13<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10(), tuple.getV11(), tuple.getV12());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> concat(Tuple13<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> tuple) {
-        return new Tuple14<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10(), tuple.getV11(), tuple.getV12(), tuple.getV13());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> concat(Tuple14<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> tuple) {
-        return new Tuple15<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10(), tuple.getV11(), tuple.getV12(), tuple.getV13(), tuple.getV14());
-    }
-
-    /**
-     * Concatenate a tuple to this tuple.
-     */
-    public final <T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> concat(Tuple15<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> tuple) {
-        return new Tuple16<>(v1, tuple.getV1(), tuple.getV2(), tuple.getV3(), tuple.getV4(), tuple.getV5(), tuple.getV6(), tuple.getV7(), tuple.getV8(), tuple.getV9(), tuple.getV10(), tuple.getV11(), tuple.getV12(), tuple.getV13(), tuple.getV14(), tuple.getV15());
-    }
-
-    /**
-     * Split this tuple into two tuples of degree 0 and 1.
-     */
-    public final Tuple2<Tuple0, Tuple1<T1>> split0() {
-        return new Tuple2<>(limit0(), skip0());
-    }
-
-    /**
-     * Split this tuple into two tuples of degree 1 and 0.
-     */
-    public final Tuple2<Tuple1<T1>, Tuple0> split1() {
-        return new Tuple2<>(limit1(), skip1());
-    }
-
-    /**
-     * Limit this tuple to degree 0.
-     */
-    public final Tuple0 limit0() {
-        return Tuple0.INSTANCE;
-    }
-
-    /**
-     * Limit this tuple to degree 1.
-     */
-    public final Tuple1<T1> limit1() {
-        return this;
-    }
-
-    /**
-     * Skip 0 degrees from this tuple.
-     */
-    public final Tuple1<T1> skip0() {
-        return this;
-    }
-
-    /**
-     * Skip 1 degrees from this tuple.
-     */
-    public final Tuple0 skip1() {
-        return Tuple0.INSTANCE;
-    }
-
-    /**
-     * Apply this tuple as arguments to a function.
-     */
-    public final <R> R map(Function1<? super T1, ? extends R> function) {
-        return function.apply(v1);
-    }
-
-    /**
-     * Apply attribute 1 as argument to a function and return a new tuple with the substituted argument.
-     */
-    public final <U1> Tuple1<U1> map1(Function1<? super T1, ? extends U1> function) {
-        return new Tuple1<>(function.apply(v1));
-    }
-
-    /**
-     * Maps the attributes of this tuple using a mapper function.
-     */
-    public final <U1> Tuple1<U1> mapAll(Function1<? super T1, Tuple1<U1>> function) {
-        return function.apply(v1);
-    }
-
-    @Override
-    public Tuple1<T1> clone() {
-        return new Tuple1<>(this);
-    }
 }