“…Wenn die o 𝑖 .g nun selbst wieder Bunches sind, also o 𝑖 .g = o 𝑖,1 , … , o 𝑖,𝑚 𝑖 , dann haben wir o.f.g = o 1,1 , … , o 1,𝑚 1 , … , o 𝑛,1 , … , o 𝑛,𝑚 𝑛 , also wieder ein Bunch. 7 Genau wie ein Feldzugriff bei einem Record in Pascal und anderen Algol-DerivatenEs fällt auf, dass im Ergebnis die Verknüpfung der Funktionen 𝑔 und 𝑓, 𝑔 ∘ 𝑓, genau dem relativen Produkt der entsprechenden Relationen 𝑓 und 𝑔 entspricht: das relative Produkt von𝑓 = {(𝑜, 𝑜 1 ), … , (𝑜, 𝑜 𝑛 )} und 𝑔 = {(𝑜 1 , 𝑜 1,1 ), … , (𝑜 1 , 𝑜 1,𝑚 1 ), … , (𝑜 𝑛 , 𝑜 𝑛,1 ), … , (𝑜 𝑛 , 𝑜 𝑛,𝑚 𝑛 )} ergibt {(𝑜, 𝑜 1,1 ), … , (𝑜, 𝑜 1,𝑚 1 ), … , (𝑜, 𝑜 𝑛,1 ), … , (𝑜, 𝑜 𝑛,𝑚 𝑛 )} = 𝑔 ∘ 𝑓 .Wir sehen also, dass sich, wenn wir Bunches anstelle von Collections verwenden, die Navigationsausdrücke für Plurale nicht von denen für Singulare unterscheiden -wir können sie vielmehr einheitlich behandeln(Steimann und Freitag 2022).Nachdem wir nun Attribute als (einstellige) bunch-wertige Funktionen und diese als Relationen aufgefasst sowie gezeigt haben, was die Funktionsanwendung auf Bunches bedeutet, liegt es nahe, dasselbe Prinzip auch auf Methoden anzuwenden: Ein Methodenaufruf auf einem Bunch distributiert über die Konstituenten des Bunches. Praktisch würde das bedeuten, dass der Methodenaufruf auf einem Bunch zu gleichen Methodenaufrufen auf allen das Bunch konstituierenden Objekten auflöst (oder eben auf keinem, wenn das Bunch leer ist).…”