code: func (vs *Set) Equal(vsOther *Set) error {
  	if vs.Size() != vsOther.Size() {
  		return fmt.Errorf("set size %d != other set size %d", vs.Size(), vsOther.Size())
  	}
  	// Stop iteration IFF we find a non-matching validator
  	return vs.IterateValidators(func(id crypto.Addressable, power *big.Int) error {
  		otherPower := vsOther.GetPower(id.GetAddress())
  		if otherPower.Cmp(power) != 0 {
  			return fmt.Errorf("set power %d != other set power %d", power, otherPower)
  		}
  		return nil
  	})
  }
docs: // Returns an error if the Sets are not equal describing which part of their structures differ