Draft of BidirectionalIterator, and RandomAccessIterator