Коллеги,
Сообщение о языке позволяет ссылаться на (еще) не определенный тип. В разделе 4:

3.	A declaration of a type T containing references to another type T1 may occur at a point where T1 is still unknown. The  declaration of T1 must follow in the same block to which T is local;

Это единственное исключение из правила, что идентификатор должен быть объявлен прежде, чем использован. Оно сделано, очевидно, для определения взаимно ссылающихся типов. Однако, строго следуя формулировке Сообщения, получается возможным сделать так:

TYPE B = RECORD(A) END;
A = EXTENSIBLE RECORD END;

Пользы в этом нет: расширение всегда можно определить после базы, даже если они взаимно ссылаются.

Оказывается, компилятор Dev реализует эту возможность. Но для этого предпринимаются специальные усилия.

Как полагаете, можно ли ограничить использование неопределенных идентификаторов типами полей (и запретить их в указании базового типа) и элементов массивов? Это позволило бы несколько упростить компилятор(ы).