Definition of `List<T>` in .net shows it implement various interfaces. 

```
public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable

```

What changes interfaces with and without `T` brings in `IList` i.e. if one of my class implement `IList<T>` and not `IList`, then can I use it as my custom collection class or not?