docs: 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