code: func (c *Client) SemaphorePrefix(prefix string, limit int) (*Semaphore, error) {
  	opts := &SemaphoreOptions{
  		Prefix: prefix,
  		Limit:  limit,
  	}
  	return c.SemaphoreOpts(opts)
  }
docs: // SemaphorePrefix is used to created a Semaphore which will operate
  // at the given KV prefix and uses the given limit for the semaphore.
  // The prefix must have write privileges, and the limit must be agreed
  // upon by all contenders.