@normalize_types<EOL><INDENT>def eq(self, o):<DEDENT>
if (self.is_integer<EOL>and o.is_integer<EOL>):<EOL><INDENT>if self.lower_bound == o.lower_bound:<EOL><INDENT>return TrueResult()<EOL><DEDENT>else:<EOL><INDENT>return FalseResult()<EOL><DEDENT><DEDENT>else:<EOL><INDENT>if self.name == o.name:<EOL><INDENT>return TrueResult() <EOL><DEDENT>si_intersection = self.intersection(o)<EOL>if si_intersection.is_empty:<EOL><INDENT>return FalseResult()<EOL><DEDENT>else:<EOL><INDENT>return MaybeResult()<EOL><DEDENT><DEDENT>
Equal

:param o: The ohter operand
:return: TrueResult(), FalseResult(), or MaybeResult()