New cartesianProduct should return a forward range.