static <T1, T2, T3> Seq<Tuple3<T1, T2, T3>> crossApply(Seq<? extends T1> seq, Function<? super T1, ? extends Seq<? extends T2>> function2, Function<? super T2, ? extends Seq<? extends T3>> function3) {
        return seq.flatMap(t1 -> function2.apply(t1).map(t2 -> tuple(t1, t2)))
                  .flatMap(t -> function3.apply(t.v2).map(t3 -> t.concat(t3)))
                  .onClose(seq::close);
    }
Cross apply 3 functions to a stream.
<p>
<pre><code>
// (tuple(1, 0), tuple(2, 0), tuple(2, 1))
Seq.of(1, 2).crossApply(t -> Seq.range(0, t))
</code></pre>
jOOL/src/main/java/org/jooq/lambda/Seq.java