We already have one of these in dart:core

https://api.dartlang.org/apidocs/channels/stable/#dart-core.BidirectionalIterator