Допустим, есть программа:
## Код:
```
TYPE 
   RecordBase = RECORD END;
   Base = POINTER TO RecordBase;
   RecordType1 = RECORD (RecordBase) a: INTEGER END;
   Type1 = POINTER TO RecordType1;
   RecordType2 = RECORD (RecordBase) c: ARRAY 10 OF CHAR END;
   Type2 = POINTER TO RecordType2;
VAR
   array: ARRAY 3 OF Base;
   t1: Type1;
   t2: Type2;
   t3: Type1;
BEGIN
   NEW(t1);
   NEW(t2);
   NEW(t3);
   array[0] := t1;
   array[1] := t2;
   array[2] := t3;
```

Как программно можно определить, что array[i]^ := array[j]^ можно делать, если i = 0 и j = 2 и нельзя делать, если i = 0 и j = 1?