Immutable or not immutable?
Ok, as I understand it, immutable types are inherently thread safe or so I've read in various places and I think I understand why it is so. If the inner state of an instance can not be modified once the object is created there seems to be no problems with concurrent access to the instance itself. Therefore, I could create the following List : class ImmutableList<T>: IEnumerable<T> { readonly List<T> innerList; public ImmutableList(IEnumerable<T> collection) { this.innerList = new List<T>(collection); } public ImmutableList() { this.innerList = new List<T>(); } public ImmutableList<T> Add(T