# Will OrderedDictionary ever graduate?

**URL:** <https://forums.swift.org/t/will-ordereddictionary-ever-graduate/65862>\
**Category:** Discussion\
**Created:** [June 27, 2023, 8:44pm UTC](https://forums.swift.org/t/will-ordereddictionary-ever-graduate/65862 "2023-06-27T20:44:30Z")\
**Posts on this page:** 1\
**Showing post:** 9

<div class="post-metadata">

**Author:** ![taylorswift](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/taylorswift/32/43413_2.png) [@taylorswift](https://forums.swift.org/u/taylorswift)\
**Post date:** [June 28, 2023, 9:15pm UTC](https://forums.swift.org/t/will-ordereddictionary-ever-graduate/65862/9 "2023-06-28T21:15:04Z")

</div>

> [@xwu](#):
>
> It's important to be precise about the ask here.
> 
> As you've pointed out yourself above, Dispatch is an example of something that, as a "core library," ships as part of the toolchain on all supported platforms but is not part of the standard library. If that's what's desired, then the ask is to make some or all of Swift Collections another core library.

the standard library isn’t the same thing as the `Swift` module, and i personally don’t think the terms “standard” and “core” libraries are helpful, given:

- if there exists such a dichotomy, then there is only one “standard” library, the `Swift` module, and
- there exist many “core” libraries (e.g. [`CoreData`](https://developer.apple.com/documentation/coredata)) that don’t ship with the toolchain because many people use _core_ as a synonym for _important_, and everyone thinks their own library is important.

but regardless, your assumption is correct, i believe that the most appropriate home for `OrderedDictionary` would be in [a toolchain module](https://forums.swift.org/t/pitch-sequence-grouped-by-and-keyed-by/65511/10) and not the `Swift` module.

> [@xwu](#):
>
> If what's desired is a more frictionless user experience, then the ask is for parity in open-source tooling—for example, can SwiftPM do more with installed package collections and be similarly preconfigured?

as @bbrk24 mentioned, integrating third-party repositories more deeply into SPM doesn’t help people who aren’t using SPM, and the requirement to use SPM is itself an obstacle to using these libraries.

i will also say that in my SPM-centric work, a large part of the friction arises from the need to fetch, version, and cache data from a github repository over the internet, whereas a “pure”, self-contained package that uses only toolchain modules can be built and tested in an isolated environment.

> [@xwu](#):
>
> (some of which is shared in common with core libraries, as I understand); and (2) subjecting the entire user-facing API, and any changes to it going forward, to review by the language steering group via the Evolution process.

there are many experimental modules that ship with the toolchain (`_Differentiation`? `StringProcessing`?) that have added [voluminous API](https://swiftinit.org/reference/swift/bidirectionalcollection) to standard library types without going through evolution.

---

_[View the full topic](https://forums.swift.org/t/will-ordereddictionary-ever-graduate/65862)._
