In this chapter, we explored and experimented with various collection implementations. We discussed the underlying representation, complexity, and use cases of each data structure. We also introduced a third-party library, Spire, to improve the performance of our programs. Some of the implementations presented drifted away from typical functional programming practices, but we were able to restrict the use of mutable state to internal modules, while still exposing functional public APIs. We expect that you are eager to learn more, but in the next chapter, we will become lazy! In contrast to this chapter, which focused on eager collections, we turn our attention to lazy collections in the next chapter.