code: def eq(self, o):
          
  
          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()
docs: Equal
  
          :param o: The ohter operand
          :return: TrueResult(), FalseResult(), or MaybeResult()