@normalize_types_one_arg<EOL><INDENT>def __add__(self, other):<DEDENT>
new_vs = ValueSet(bits=self.bits)<EOL>new_vs._si = self._si.__add__(other)<EOL>for region in self._regions:<EOL><INDENT>new_vs._regions[region] = self._regions[region] + other<EOL><DEDENT>return new_vs<EOL>
Binary operation: addition

Note that even if "other" is a ValueSet object. we still treat it as a StridedInterval. Adding two ValueSets
together does not make sense (which is essentially adding two pointers together).

:param StridedInterval other: The other operand.
:return: A new ValueSet object
:rtype: ValueSet