static LPair outerProductPairs(Collection lA, Collection lB) { ret nestedIterator(lA, func(A a) -> Iterator> { mapI(lB, b -> pair(a, b)) }); }