Brian is a genius.  I have really been p***** ever since I lost the ability to have generic iterators like I had in C++.  We can all argue about the type safety later, lets just stick to the point.  Brian's post is pure genius.  Learn it, love it, live it.