code: func (s *Set) Union(other *Set) *Set {
  	result := &Set{F: s.F}
  	result.once.Do(result.init)
  
  	for k, v := range s.m {
  		result.m[k] = v
  	}
  	for k, v := range other.m {
  		result.m[k] = v
  	}
  
  	return result
  }
docs: // Union performs the set union of the two sets and returns a new third
  // set.