I'm not an expert on the issue, but I believe the Stackoverflow post at http://stackoverflow.com/questions/2454281/when-is-unchecked... explains why @uncheckedVariance is currently used without all the condescension from the above post, for anyone who is curious.
Otherwise, I found the article very valuable. First, it shows you how to extend the library with your own collections. Second, I learned more about how to use Scala's language features to build an advanced library or abstraction by reading about their architecture. The library provides a good example of how to use interface and implementation traits, how to organize a complex class hierarchy (and when the type system might still get in the way of that hierarchy), and how to use implicit arguments to avoid code duplication, among other things.
Otherwise, I found the article very valuable. First, it shows you how to extend the library with your own collections. Second, I learned more about how to use Scala's language features to build an advanced library or abstraction by reading about their architecture. The library provides a good example of how to use interface and implementation traits, how to organize a complex class hierarchy (and when the type system might still get in the way of that hierarchy), and how to use implicit arguments to avoid code duplication, among other things.
For anyone even a little interested in Scala, this article, along with the one explaining the API from a user perspective at http://www.scala-lang.org/docu/files/collections-api/collect..., make for a very interesting read.