Concept from the C++ standard. See https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator.