The need for this was brought up by #4 - every user is probably going to need to enumerate the bus at some point, and so we can probably provide a nicer interface to this than them having to do it manually.
I'm envisaging a sort of Iterator-like interface, or maybe a visitor-like thing that allows you to e.g. visit every device, or every function, etc.