default Seq<Tuple15<Window<T>, Window<T>, Window<T>, Window<T>, Window<T>, Window<T>, Window<T>, Window<T>, Window<T>, Window<T>, Window<T>, Window<T>, Window<T>, Window<T>, Window<T>>> window(
        WindowSpecification<T> specification1,
        WindowSpecification<T> specification2,
        WindowSpecification<T> specification3,
        WindowSpecification<T> specification4,
        WindowSpecification<T> specification5,
        WindowSpecification<T> specification6,
        WindowSpecification<T> specification7,
        WindowSpecification<T> specification8,
        WindowSpecification<T> specification9,
        WindowSpecification<T> specification10,
        WindowSpecification<T> specification11,
        WindowSpecification<T> specification12,
        WindowSpecification<T> specification13,
        WindowSpecification<T> specification14,
        WindowSpecification<T> specification15
    ) {
        List<Tuple2<T, Long>> buffer = zipWithIndex().toList();

        Map<?, Partition<T>> partitions1 = SeqUtils.partitions(specification1, buffer);
        Map<?, Partition<T>> partitions2 = SeqUtils.partitions(specification2, buffer);
        Map<?, Partition<T>> partitions3 = SeqUtils.partitions(specification3, buffer);
        Map<?, Partition<T>> partitions4 = SeqUtils.partitions(specification4, buffer);
        Map<?, Partition<T>> partitions5 = SeqUtils.partitions(specification5, buffer);
        Map<?, Partition<T>> partitions6 = SeqUtils.partitions(specification6, buffer);
        Map<?, Partition<T>> partitions7 = SeqUtils.partitions(specification7, buffer);
        Map<?, Partition<T>> partitions8 = SeqUtils.partitions(specification8, buffer);
        Map<?, Partition<T>> partitions9 = SeqUtils.partitions(specification9, buffer);
        Map<?, Partition<T>> partitions10 = SeqUtils.partitions(specification10, buffer);
        Map<?, Partition<T>> partitions11 = SeqUtils.partitions(specification11, buffer);
        Map<?, Partition<T>> partitions12 = SeqUtils.partitions(specification12, buffer);
        Map<?, Partition<T>> partitions13 = SeqUtils.partitions(specification13, buffer);
        Map<?, Partition<T>> partitions14 = SeqUtils.partitions(specification14, buffer);
        Map<?, Partition<T>> partitions15 = SeqUtils.partitions(specification15, buffer);

        return seq(buffer)
              .map(t -> tuple(
                   (Window<T>) new WindowImpl<>(t, partitions1.get(specification1.partition().apply(t.v1)), specification1),
                   (Window<T>) new WindowImpl<>(t, partitions2.get(specification2.partition().apply(t.v1)), specification2),
                   (Window<T>) new WindowImpl<>(t, partitions3.get(specification3.partition().apply(t.v1)), specification3),
                   (Window<T>) new WindowImpl<>(t, partitions4.get(specification4.partition().apply(t.v1)), specification4),
                   (Window<T>) new WindowImpl<>(t, partitions5.get(specification5.partition().apply(t.v1)), specification5),
                   (Window<T>) new WindowImpl<>(t, partitions6.get(specification6.partition().apply(t.v1)), specification6),
                   (Window<T>) new WindowImpl<>(t, partitions7.get(specification7.partition().apply(t.v1)), specification7),
                   (Window<T>) new WindowImpl<>(t, partitions8.get(specification8.partition().apply(t.v1)), specification8),
                   (Window<T>) new WindowImpl<>(t, partitions9.get(specification9.partition().apply(t.v1)), specification9),
                   (Window<T>) new WindowImpl<>(t, partitions10.get(specification10.partition().apply(t.v1)), specification10),
                   (Window<T>) new WindowImpl<>(t, partitions11.get(specification11.partition().apply(t.v1)), specification11),
                   (Window<T>) new WindowImpl<>(t, partitions12.get(specification12.partition().apply(t.v1)), specification12),
                   (Window<T>) new WindowImpl<>(t, partitions13.get(specification13.partition().apply(t.v1)), specification13),
                   (Window<T>) new WindowImpl<>(t, partitions14.get(specification14.partition().apply(t.v1)), specification14),
                   (Window<T>) new WindowImpl<>(t, partitions15.get(specification15.partition().apply(t.v1)), specification15)
              ))
              .onClose(this::close);
    }
Map this stream to a windowed stream with 15 distinct windows.
jOOL-java-8/src/main/java/org/jooq/lambda/Seq.java