# System.Collections.Immutable ``` diff namespace System.Collections.Immutable { public struct ImmutableArray : ICollection, ICollection, IEnumerable, IEnumerable, IEquatable>, IImmutableList, IList, IList, IReadOnlyCollection, IReadOnlyList, IStructuralComparable, IStructuralEquatable { + public ref readonly T ItemRef(int index); public sealed class Builder : ICollection, IEnumerable, IEnumerable, IList, IReadOnlyCollection, IReadOnlyList { + public ref readonly T ItemRef(int index); } } public sealed class ImmutableList : ICollection, ICollection, IEnumerable, IEnumerable, IImmutableList, IList, IList, IReadOnlyCollection, IReadOnlyList { + public ref readonly T ItemRef(int index); public sealed class Builder : ICollection, ICollection, IEnumerable, IEnumerable, IList, IList, IReadOnlyCollection, IReadOnlyList { + public ref readonly T ItemRef(int index); } } public sealed class ImmutableQueue : IEnumerable, IEnumerable, IImmutableQueue { + public ref readonly T PeekRef(); } public sealed class ImmutableSortedDictionary : ICollection, ICollection>, IDictionary, IDictionary, IEnumerable, IEnumerable>, IImmutableDictionary, IReadOnlyCollection>, IReadOnlyDictionary { + public ref readonly TValue ValueRef(TKey key); public sealed class Builder : ICollection, ICollection>, IDictionary, IDictionary, IEnumerable, IEnumerable>, IReadOnlyCollection>, IReadOnlyDictionary { + public ref readonly TValue ValueRef(TKey key); } } public sealed class ImmutableSortedSet : ICollection, ICollection, IEnumerable, IEnumerable, IImmutableSet, IList, IList, IReadOnlyCollection, IReadOnlyList, ISet { + public ref readonly T ItemRef(int index); public sealed class Builder : ICollection, ICollection, IEnumerable, IEnumerable, IReadOnlyCollection, ISet { + public ref readonly T ItemRef(int index); } } public sealed class ImmutableStack : IEnumerable, IEnumerable, IImmutableStack { + public ref readonly T PeekRef(); } } ```