FYI, some of the implementations of the backtracking conjoin() operator in test_generators.py make heavy use of for values[i] in gs[i](): style for-loops. That style is often useful when generating vectors representing combinatorial objects. I could live without it, but so far haven't needed to prove that <wink>.