code: func (s *Semaphore) Unlock(h string) error {
  	if err := s.removeHolder(h); err != nil {
  		return err
  	}
  
  	s.Semaphore = s.Semaphore + 1
  
  	return nil
  }
docs: // Unlock removes a holder with id h from the semaphore
  // It removes the id h from the list of holders, returning ErrNotExist if the id
  // does not exist in the list, then adds one to the semaphore.