func (this *Set) Insert(element interface{}) {
	this.hash[element] = nothing{}
}
Add an element to the set
package set
type (
	Set struct {
		hash map[interface{}]nothing
	}
	nothing struct{}
)
func New(initial ...interface{}) *Set {
	s := &Set{make(map[interface{}]nothing)}
	for _, v := range initial {
		s.Insert(v)
	}
	return s
}
func (this *Set) Difference(set *Set) *Set {
	n := make(map[interface{}]nothing)
	for k, _ := range this.hash {
		if _, exists := set.hash[k]; !exists {
			n[k] = nothing{}
		}
	}
	return &Set{n}
}
func (this *Set) Do(f func(interface{})) {
	for k, _ := range this.hash {
		f(k)
	}
}
func (this *Set) Has(element interface{}) bool {
	_, exists := this.hash[element]
	return exists
}