using System; namespace System.Collections { interface IEnumerator { Object Current { get; } bool MoveNext(); void Reset(); void Dispose(); } interface IEnumerable { IEnumerator GetEnumerator(); } } namespace System.Collections.Generic { interface IEnumerator { Result GetNext() mut; } interface IRefEnumerator : IEnumerator { Result GetNextRef() mut; } concrete interface IEnumerable { concrete IEnumerator GetEnumerator(); } }