Invalid redeclaration of synthesized implementation for protocol requirement 'allCases'

I just reported the bug there.

That isn't the only benefit of using a set, and it isn't the reason I'm using it here.

The reason that I'm using a set is because all of the other APIs in my library use Set<Scope>. This
prevent duplicates, which don't make sense for this type, allows order order-insensitive comparisons, and allows for mathematical set operations like isSubset.

Are you sure about this?