code: func (s *Semaphore) removeHolder(h string) error {
  	loc := sort.SearchStrings(s.Holders, h)
  	if loc < len(s.Holders) && s.Holders[loc] == h {
  		s.Holders = append(s.Holders[:loc], s.Holders[loc+1:]...)
  	} else {
  		return ErrNotExist
  	}
  
  	return nil
  }
docs: // removeHolder removes a holder with id h from the list of holders in the
  // semaphore. It returns ErrNotExist if the given id is not in the list