There are also some immtuable F# collections and it would be interesting to compare to those.
I like the builder pattern - not that it's necessary but the optimization it affords. It's also interesting to hear how much defensive coding is inside VS around collections. Immutability where possible just gives peace of mind and static guarantees. It is almost like dependent types where you can express a value constraint statically.
The thing about sharing (and deep immutability) was also interesting, it kind of reminded me of smart pointers but it could have been expanded further by Erik.
It seemed like there was material enough for more talk but this was fun.