code: func (ps PrincipalSet) UniqueSet() map[*msp.MSPPrincipal]int {
  	// Create a histogram that holds the MSPPrincipals and counts them
  	histogram := make(map[struct {
  		cls       int32
  		principal string
  	}]int)
  	// Now, populate the histogram
  	for _, principal := range ps {
  		key := struct {
  			cls       int32
  			principal string
  		}{
  			cls:       int32(principal.PrincipalClassification),
  			principal: string(principal.Principal),
  		}
  		histogram[key]++
  	}
  	// Finally, convert to a histogram of MSPPrincipal pointers
  	res := make(map[*msp.MSPPrincipal]int)
  	for principal, count := range histogram {
  		res[&msp.MSPPrincipal{
  			PrincipalClassification: msp.MSPPrincipal_Classification(principal.cls),
  			Principal:               []byte(principal.principal),
  		}] = count
  	}
  	return res
  }
docs: // UniqueSet returns a histogram that is induced by the PrincipalSet