Ich stuetze mich hier auf mein Pasacal-Wissen von der Uni (lang ists her).
Delphi-Quellcode:
var
a: ^Integer;
b: ^Integer;
begin
a := b;
end;
Diese Zuweisung ist nicht erlaubt, da die Typen beider Variablen unterschiedlich sind.
Am einfachsten laesst sich das erklaeren, wenn man annimmt das "^Integer" intern einen unbenannten eigenen Typ bekommt.
Etwas aehnliches gibt es bei "with". With kann man am Besten erklaeren indem man unbenannte Variablen annimmt.
Genau so implementiert der Compiler es ausserdem.