An OrderedSet is a totally ordered collection of members in which every member also has a distinct identity as defined by comparison against a key value.
(.. This type is currently implemented only using the low-level option of an internal member slot, and the messages for that option do not match the documentation in KeyedCollection. If you need one of these objects, then either use a List or wait for some other implementation.)
The sequence of members of an OrderedSet is established using the same messages that maintain member sequence in a List. An OrderedSet supports customization and access by key as defined by Set and KeyedCollection. The union of messages from all these sources defines the total interface of an OrderedSet. Members with duplicate keys, however, are not valid for an OrderedSet. Each member must have a unique position within the member sequence