I'd rather keep `IndexedValue` for now. In my experience `Pair` can be overused when a purpose-specific class would have been better. Given that it's much easier to create and maintain value classes in Dart than Java, I'd wait for more evidence that generic value classes are needed. For Map we might want a `MapEntry` class that also allows setting the value.