"Vincent DIEMUNSCH" wrote in message news:7d014624-d143-4564-abfa-802534693644@googlegroups.com... Le samedi 2 septembre 2017 19:08:48 UTC+2, Jeffrey R. Carter a écrit : ... >> What would A(+Red) mean? Indices don't have to be numeric. > >But an array index needs to be isomorphic to an Integer. It's an array ! >Not >a dictionnary, or a hash table. Why? In Ada 2012, if A is a hashed map, A(Red) is exactly a reference into hash table. (Yes, this is formally a function call, but it points out the continum of mapping that goes from a basic array object, thru a user-defined indexed object, to a function call -- all forms of mapping.) ... >> A(+I) is already defined for numeric I. This would not be backward >> compatible, >> so it's very unlikely to happen. > >Sure, it is not fully backward compatible. But by the way, only the absence >of any >evolution is 100% backward compatible, isn't it ? Not really true, there is a lot that can be done with pure extensions (think, for instance, conditional expressions in Ada 2012 -- their addition has no effect on existing Ada 95 code). There are plenty of uses of unary "+" in existing code, changing the meaning would silently break such code -- the worst kind of incompatibility. That we would do only for a critical issue (like composition of record "=", and that was very controversal, we made the incompatible change only because we couldn't find a sensible compatible change), surely not for something that would save a handful of keystrokes. (And remember that readability is an important goal in Ada, saving keystrokes is not a goal!) Randy.