<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">></span><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">> </span><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">Personally, I’m not indifferent ☺
>
> I know that it can be done, but the question is WHY.</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> Only because something can be done is a poor reason to do it.</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">>
>
> If you put a := b in your code, you do that as you know or</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> assume a certain relationship between those two variables</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> (they e.g. represent instances of the same or comparable</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> thing). If this hold true, I don’t understand why you</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> have to write two totally independent type declarations</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> that (by accident) match structurally.
>
> br
>
> Jörg</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">Jörg, you have a valid point - no question! I value such input</span></font><span style="font-family: monospace; white-space: pre-wrap;" class="">. </span><span style="font-family: monospace; white-space: pre-wrap;" class="">As</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">I said myself </span><span style="font-family: monospace; white-space: pre-wrap;" class="">earlier “I just </span><span style="font-family: monospace; white-space: pre-wrap;" class="">don’t have a good enough reason yet”.</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class=""><br class=""></span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">But I do want to continue exploring the question a little bit, now</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">that the topic has come up for the N-th time in M decades. P</span></font><span style="white-space: pre-wrap; font-family: monospace;" class="">erhaps</span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">this time around, someone comes up with a new insight or a “good</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">enough” reason for changing the language.</span></font></div><div class=""><br class=""></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">If I understand you correctly, your position can also be viewed</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">as: </span></font><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">“If as a language designer one does have</span></font><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""> a chance or option</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">to </span></font><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">promote ‘good’ programming style (whatever </span></font><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">that means), </span></font><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">one</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">should</span></font><span style="white-space: pre-wrap; font-family: monospace;" class=""> by all means use it”.. In the particular case </span><span style="white-space: pre-wrap; font-family: monospace;" class="">of array</span></div><div class=""><span style="white-space: pre-wrap; font-family: monospace;" class="">type </span><span style="white-space: pre-wrap; font-family: monospace;" class="">equivalence discussed in this forum, </span><span style="white-space: pre-wrap; font-family: monospace;" class="">it </span><span style="white-space: pre-wrap; font-family: monospace;" class="">effectively amounts</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">to forcing programmers to write one </span><span style="font-family: monospace; white-space: pre-wrap;" class="">type declaration instead of two;</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">which I too view as good programming practice, which in addition</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">increases </span><span style="font-family: monospace; white-space: pre-wrap;" class="">code readability in my opinion.</span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">Perhaps yet another way to look at your position is this: Once I do</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">allow structural equivalence for </span></font><span style="white-space: pre-wrap; font-family: monospace;" class="">arrays, I can never go back in the</span></div><div class=""><span style="white-space: pre-wrap; font-family: monospace;" class="">future without breaking someone’s legacy </span><span style="white-space: pre-wrap; font-family: monospace;" class="">code. So, in the </span><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">absence</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">of a really compelling reason to actually *allow* </span></font><span style="white-space: pre-wrap; font-family: monospace;" class="">structural</span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">equivalence for arrays, one should “play safe” and disallow it.</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">Perhaps </span></font><span style="white-space: pre-wrap; font-family: monospace;" class="">that is what </span><span style="font-family: monospace; white-space: pre-wrap;" class="">the Pascal/Modula/Oberon compiler writers</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">felt all those years..</span></div><div class=""><br class=""></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">PS: I’m now 60/40 - does that make you feel better? ;-)</span></font></div><div class=""><br class=""></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">-AP</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font><div class=""><br class=""></div></body></html>