def lub(self, other):
        """
        Return the least upper bound for given intervals.

        :param other: AbstractInterval instance
        """
        return self.__class__(
            [
                max(self.lower, other.lower),
                max(self.upper, other.upper),
            ],
            lower_inc=self.lower_inc if self < other else other.lower_inc,
            upper_inc=self.upper_inc if self > other else other.upper_inc,
        )