Equal

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

def eq(self, o):
        """
        Equal

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

        if (self.is_integer
            and o.is_integer
            ):
            # Two integers
            if self.lower_bound == o.lower_bound:
                # They are equal
                return TrueResult()
            else:
                # They are not equal
                return FalseResult()

        else:
            if self.name == o.name:
                return TrueResult() # They are the same guy

            si_intersection = self.intersection(o)
            if si_intersection.is_empty:
                return FalseResult()

            else:
                return MaybeResult()