def union(self, other):
        if not self: return other
        if not other: return self

        if self < other:
            return self._make_heap(self.root, other.union(self.right), self.left)
        return self._make_heap(other.root, self.union(other.right), other.left)
Merge two heaps and returns new one (skew merging)
dataset/ETHPy150Open kachayev/fn.py/fn/immutable/heap.py/SkewHeap.union