i ran into iterator problems at work recently, and this is great work, thank you.
the next step i'm missing is how to iterate over iterator classes that have been defined using `boost::iterator_facade`. these are meant to be used with `foreach`, and don't work out of the box. i'll post a more detailed example later.
