title: IEnumerable<T> as return type
body: <p>Is there a problem with using <code>IEnumerable&lt;T&gt;</code> as a return type?
  FxCop complains about returning <code>List&lt;T&gt;</code> (it advises returning <code>Collection&lt;T&gt;</code> instead).</p>
  
  <p>Well, I've always been guided by a rule "accept the least you can, but return the maximum."</p>
  
  <p>From this point of view, returning <code>IEnumerable&lt;T&gt;</code> is a bad thing, but what should I do when I want to use "lazy retrieval"? Also, the <code>yield</code> keyword is such a goodie.</p>