Unlike its companion collections like NSArray, NSDictionary, and NSSet, NSOrdered is still a class rather than a struct and has a subclass that is still NSMutableOrderedSet. This should probably receive the same treatment as the other classes, namely:
- Use value semantic
- Use generics
- Keep the original NSOrderedSet class and its subclass NSMutableOrderedSet and bridge the two.
struct OrderedSet<Element : Hashable> : SetAlgebra, Hashable, Collection, ArrayLiteralConvertible
This would add an ordered set type to Swift and fits nicely into the existing set of collections and classes moved from Foundation.