Allows us to write in terms of the "ideal" traversal protocol while maintaining compatibilty with the existing one Swift SVN r5101