default <U> Seq<Tuple2<T, U>> crossApply(Function<? super T, ? extends Iterable<? extends U>> function) {
        return crossApply(this, t -> seq(function.apply(t)));
    }
Cross apply a function to this stream.
<p>
This works like {@link #flatMap(java.util.function.Function)}, except 
that the result retains the original <code>T</code> values.
<p>
// (tuple(1, 0), tuple(2, 0), tuple(2, 1))
Seq.of(1, 2).crossApply(t -> Seq.range(0, t))
</p>
jOOL/src/main/java/org/jooq/lambda/Seq.java