Por que IList <T> herda IEnumerable <T> e IEnumerable novamente

Eu dei uma olhadaIList<T> eICollection<T> no MSDN por acaso, e veja que a definição dessas duas interfaces são:

public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable

Notar queICollection<T> herda deIEnumerable<T> eIEnumerable, tudo bem.IList<T> herda deICollection<T>, mas por queIList<T> tem que herdarIEnumerable<T> eIEnumerable novamente?

Existe algum motivo para isso?

questionAnswers(1)

yourAnswerToTheQuestion