title: Why use ImmutableList over ReadOnlyCollection?
body: <p>.NET 4.5 has a new namespace <a href="https://msdn.microsoft.com/en-us/library/system.collections.immutable(v=vs.111).aspx">System.Collections.Immutable</a></p>
  
  <blockquote>
    <p>This package provides collections that are thread safe and guaranteed to never change their contents, also known as immutable collections.</p>
  </blockquote>
  
  <p>I'm confused. Isn't the thread safety problem already solved by the <a href="https://msdn.microsoft.com/en-us/library/ms132474%28v=vs.110%29.aspx">ReadOnlyCollection</a> class? Why use <a href="https://msdn.microsoft.com/en-us/library/dn467185%28v=vs.111%29.aspx">ImmutableList</a> instead?</p>
  
  <hr>
  
  <p>I know there's also an <a href="https://msdn.microsoft.com/en-us/library/hh192385%28v=vs.110%29.aspx">IReadOnlyList <em>interface</em></a>. That doesn't solve the thread safety problem implicitly, because other threads may edit the object by another interface.</p>