Not sure how many of you guys have experienced FxCop Rule# CA1002 : Do Not Expose Generic Lists through out your coding ventures.  I'm not sure what to think of it...

In one hand, I see the flexiblity of returning the IList<T> type since there could be x-number of things that could implemented.  Thus not tying me up with a specific implementation such as List<T> or Collection<T>.  On the other, Collection<T> does allow you to override functionality and also implements IList<T>.

The rule does mention that List<T> (IList<T>) is designed for performance and Collection<T> is designed for inheritance...

What are your thoughts on this?  Would you rather use an interface or a concrete?