Why would we want to throw away information on behalf of the user? A branch iterator returns the type. If you don't want the branch abstraction, you can use a reference iterator directly.