Union of two intervals
        :param GenomicInterval other: interval to union with
        :return: union of two intervals íf overlapping or touching
        :rtype: GenomicInterval

def union(self, other, *, ignore_strand=False):
        """
        Union of two intervals
        :param GenomicInterval other: interval to union with
        :return: union of two intervals íf overlapping or touching
        :rtype: GenomicInterval
        """
        if not ignore_strand:
            self._assert_same_chromosome_and_strand(other)
        interval = deepcopy(self)
        interval.union_update(other)
        return interval