# File cartesian.rb, line 109
  def left_product(other)
    case other
    when CartesianIterator
      other.right_product(self)
    else
      CartesianIterator.new(other, self)
    end
  end