code: func (s *set) Map(f func(*Term) (*Term, error)) (Set, error) {
  	set := NewSet()
  	err := s.Iter(func(x *Term) error {
  		term, err := f(x)
  		if err != nil {
  			return err
  		}
  		set.Add(term)
  		return nil
  	})
  	if err != nil {
  		return nil, err
  	}
  	return set, nil
  }
docs: // Map returns a new Set obtained by applying f to each value in s.