function union(Set $that) {
        $union = $this->cloneEmpty();

        $this->for_each($this, [$union, 'add']);
        $this->for_each($that, [$union, 'add']);

        return $union;
    }
function union(Set $that) {
        $union = $this->cloneEmpty();

        $this->for_each($this, [$union, 'add']);
        $this->for_each($that, [$union, 'add']);

        return $union;
    }
function union ( Set $ that ) { $ union = $ this -> cloneEmpty ( ) ; $ this -> for_each ( $ this , [ $ union , 'add' ] ) ; $ this -> for_each ( $ that , [ $ union , 'add' ] ) ; return $ union ; }
Creates a new set that contains the items of the current set and the
items of the provided set.

Formally:
A ∪ B = {x: x ∈ A ∨ x ∈ B}

@param Set $that
@return Set
Creates a new set that contains the items of the current set and the items of the provided set .