code: func (s stringSet) cross(t stringSet, isSuffix bool) stringSet {
  	p := stringSet{}
  	for _, ss := range s {
  		for _, tt := range t {
  			p.add(ss + tt)
  		}
  	}
  	p.clean(isSuffix)
  	return p
  }
docs: // cross returns the cross product of s and t.