Status of the Collections

Tuesday 12 September 2017

Julien Richard-Foy

This post gives a short update about the new collections status.

We have published a 0.4.0 release a few days ago, which:

  • gets closer to feature parity with the standard collections, with the addition of the TrieMap collection type as well as several operations (withFilter, distinct, patch, :++, to name a few);
  • comes with a migration tool to adapt existing code bases from the standard collections to the strawman;
  • benefits from internal improvements (optimizations, bug fixes, test coverage).

Most of these changes have been contributed by external developers, which I am very grateful to: @EPronovost, @marcelocenerine, @nicolasstucki, @odd, @olafurpg, @smarter @xavier-fernandez.

Next Steps

Stefan Zeiger is currently working on replacing the current collections of the standard library with the strawman and then making the compiler use it.

Rex Kerr is working on increasing the tests coverage by introducing property-based tests based on collections-laws.

As you can see in the list of issues planned for the next release, we continue to implement missing collection types (e.g. LinkedHashMap) and operations but we also start introducing new operations (such as intersperse or lazyFoldRight). I’m going to write more developer documentation to explain the internals of the new design, so that, in case you want to suggest adding something that you feel is missing, it will be easier to contribute!