<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=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> </span></font><span style="font-family: monospace; white-space: pre-wrap;" class="">---------------------------------------------------</span><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> On Fri Oct 6 12:40:42 CEST 2017 Jörg Straube:</span></font><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="">> Personally, I’m not indifferent ☺
>
> I know that it can be done, but the question is WHY. Only because</span></font><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> something can be done is a poor reason to do it.</span></font><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="">> If you put a := b in your code, you do that as you know or assume</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> a certain relationship between those two variables (they e.g. represent</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> instances of the same or comparable thing). If this hold true,</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> I don’t understand why you have to write two totally independent</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> type declarations that (by accident) match structurally.</span></font><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="">> ---------------------------------------------------</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> On Fri Oct 6 13:20:09 CEST 2017 Jörg Straube wrote:</span></font><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">></span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">> </span><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">VAR</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> nbrOfBirthsPerMonth: ARRAY 12 OF INTEGER;
> nbrOfAccidentsPerMonth: ARRAY 12 OF INTEGER;
>
> nbrOfBirthPerMonth := nbrOfAccidentsPerMonth </span></font><span style="font-family: monospace; white-space: pre-wrap;" class="">(*these match structurally but makes not much sense, should be forbidden*)</span></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="">> </span></font><span style="font-family: monospace; white-space: pre-wrap;" class="">---------------------------------------------------</span><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=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">Jörg,</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">a</span></font><span style="font-family: monospace; white-space: pre-wrap;" class="">s I said earlier, I agree that you kind of have a point here. </span><span style="font-family: monospace; white-space: pre-wrap;" class="">HOWEVER, how is your example conceptually different from:</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class=""><br class=""></span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class=""> VAR</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class=""> nbrOfBirthsPerMonth: INTEGER;
nbrOfAccidentsPerMonth: INTEGER;</span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">
nbrOfBirthsPerMonth := nbrOfAccidentsPerMonth; (*allowed, but *also* makes not much sense*)</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="">or from this:</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=""> TYPE Births = INTEGER;</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""> Accidents = INTEGER;</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class=""><br class=""></span></font></div><div class=""><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class=""> VAR</span></div><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class=""> nbrOfBirthsPerMonth: Births;
nbrOfAccidentsPerMonth: Accidents;</span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">
nbrOfBirthsPerMonth := nbrOfAccidentsPerMonth; (*allowed*)</span></font></div></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="">both of which are allowed in Oberon (the second variant is allowed, because in Oberon type aliases are considered as the *same type*), but “make no sense” according to your logic?</span></font></div></div></div></div></div></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="">In other words: If we *really* were to take a purist point of view (which I am NOT advocating!!), we might as well have the same discussion for the basic types such as INTEGER, i.e. without even referring to structured types (arrays or records).</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="">Just saying...</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">-AP</span></font></div></body></html>