type sparseSet … // newSparseSet returns a sparseSet that can represent // integers between 0 and n-1. func newSparseSet(n int) *sparseSet { … } func (s *sparseSet) cap() int { … } func (s *sparseSet) size() int { … } func (s *sparseSet) contains(x ID) bool { … } func (s *sparseSet) add(x ID) { … } func (s *sparseSet) addAll(a []ID) { … } func (s *sparseSet) addAllValues(a []*Value) { … } func (s *sparseSet) remove(x ID) { … } // pop removes an arbitrary element from the set. // The set must be nonempty. func (s *sparseSet) pop() ID { … } func (s *sparseSet) clear() { … } func (s *sparseSet) contents() []ID { … }