type sparseEntry … type sparseMap … // newSparseMap returns a sparseMap that can map // integers between 0 and n-1 to int32s. func newSparseMap(n int) *sparseMap { … } func (s *sparseMap) cap() int { … } func (s *sparseMap) size() int { … } func (s *sparseMap) contains(k ID) bool { … } // get returns the value for key k, or -1 if k does // not appear in the map. func (s *sparseMap) get(k ID) int32 { … } func (s *sparseMap) set(k ID, v int32) { … } // setBit sets the v'th bit of k's value, where 0 <= v < 32 func (s *sparseMap) setBit(k ID, v uint) { … } func (s *sparseMap) remove(k ID) { … } func (s *sparseMap) clear() { … } func (s *sparseMap) contents() []sparseEntry { … }