<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="">> On Wed Oct 11 07:59:12 CEST 2017 Jürg Straube wrote:</span></font><div class=""><span style="font-family: monospace; white-space: pre-wrap;" class="">></span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> Indeed I liked the idea of removing type aliasing in Oberon-07, but it was</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> reintroduced in the previous year. Wirth justified it saying that sometimes</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">> it's useful to introduce a short synonym for a lengthy, imported type name.
><br class="Apple-interchange-newline">> Most prominent example of type aliasing with basic types is TYPE LONGINT = INTEGER;
>
> Jörg</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="">I should have left the variant *with* the type aliases for INTEGER out. Because the</span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">issue </span></font><span style="white-space: pre-wrap; font-family: monospace;" class="">we are discussing here even exists *without* aliases, as the (re-posted) question</span></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">below shows. </span></font><span style="white-space: pre-wrap; font-family: monospace;" class="">Type aliases only add an additional complication or consideration.</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=""><br class=""></span></font></div><div class=""><font face="monospace" class=""><span style="white-space: pre-wrap;" class="">"Question:</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="">How is this code (“code A”):

  VAR
    nbrOfBirthsPerMonth: ARRAY 12 OF INTEGER;
    nbrOfAccidentsPerMonth: ARRAY 12 OF INTEGER;

  nbrOfBirthsPerMonth := nbrOfAccidentsPerMonth; (*these match structurally but makes not much sense, should be forbidden*)

CONCEPTUALLY different from the following code (“code B”):

  VAR
    nbrOfBirthsPerMonth: INTEGER;
    nbrOfAccidentsPerMonth: INTEGER;

    nbrOfBirthsPerMonth := nbrOfAccidentsPerMonth; (*allowed, but *also* makes not much sense*)

when in comes to name equivalence vs structural equivalence?"
<br class="Apple-interchange-newline"></span><br class=""></font></div><div class=""><br class=""></div></body></html>