func TreapUnion[T any](comparer CompareFn[T], priority int, items ...T) *Treap[T] {
	var t *Treap[T]
	for _, elt := range items {
		t = t.Union(&Treap[T]{elt, priority, nil, nil}, comparer, false)
	}
	return t
}
// Union combines two or more treaps. In case of duplicates, the overwrite field
// controls whether the union keeps the original value or whether it is updated
// based on value in the items
//
Union combines two or more treaps. In case of duplicates, the overwrite field
controls whether the union keeps the original value or whether it is updated
based on value in the items
// Union combines two or more treaps . In case of duplicates the overwrite field // controls whether the union keeps the original value or whether it is updated // based on value in the items //
func TreapUnion[T any](comparer CompareFn[T], priority int, items ...T) *Treap[T] {
	var t *Treap[T]
	for _, elt := range items {
		t = t.Union(&Treap[T]{elt, priority, nil, nil}, comparer, false)
	}
	return t
}
func TreapUnion [ T any ] ( comparer CompareFn [ T ] , priority int , items ... T ) * Treap [ T ] { var t * Treap [ T ] for _ , elt := range items { t = t . Union ( & Treap [ T ] { elt , priority , nil , nil } , comparer , false ) } return t }
Union combines two or more treaps.
Union combines two or more treaps .