sets.go
func (set basicSet) Clone() set {
	clone := basicSet(make(map[string]interface{}))
	for k, v := range set {
		clone[k] = v
	}

	return clone
}
func (set basicSet) Clone() set {
	clone := basicSet(make(map[string]interface{}))
	for k, v := range set {
		clone[k] = v
	}

	return clone
}
// Clone creates a copy of the set where the values in clone set point to the same underlying reference as the original set