the definition of non-generic IList interface in the official .NET documentation is:
public interface IList : ICollection
there are a lot of phenomena like repeatedly inheriting the same interface in .NET Framework BCL, so why design it this way? What kind of thinking is it based on?