type Set … // Elem returns the string with index i. It panics if i is out of range. func (s *Set) Elem(i int) string { … } // Len returns the number of strings in the set. func (s *Set) Len() int { … } // Search returns the index of the given string or -1 if it is not in the set. // The Set must have been created with strings in sorted order. func Search(s *Set, str string) int { … } type Builder … // NewBuilder returns a new and initialized Builder. func NewBuilder() *Builder { … } // Set creates the set created so far. func (b *Builder) Set() Set { … } // Index returns the index for the given string, which must have been added // before. func (b *Builder) Index(s string) int { … } // Add adds a string to the index. Strings that are added by a single Add will // be stored together, unless they match an existing string. func (b *Builder) Add(ss ...string) { … }