Коллеги, в связи с работой над краткой сводкой возник следующий вопрос о некоторой, на мой взгляд, избыточности атрибутов для записей и методов в Компонентном Паскале.
Например, процедура с атрибутом EMPTY может быть заменена процедурой с атрибутом NEW с пустым телом. При этом нет запрета на наличие в списке формальных параметров OUT-параметров. Поэтому с моей точки зрения атрибут EMPTY избыточен. Также, на мой взгляд, для методов избыточен атрибут NEW, поскольку проверить наличие процедур с одинаковым именем можно и без этого атрибута. Для типа записи с атрибутом LIMITED можно обойти ограничения на создание экземпляра только в описывающем модуле - через экспорт и расширение примерно так же, как для типа записи с атрибутом ABSTRACT. Поэтому наличие атрибута LIMITED, с моей точки зрения, тоже под вопросом.
Так же для экспорта методов "implement-only" с запретом прямого вызова из импортирующего модуля - насколько в реальной практике встречается необходимость такого?

Буду рад, если опытные программисты поделятся своим мнением на эту тему и приведут объяснения "на пальцах", когда им был необходим именно тот тип атрибута, который я считаю излишним.

С уважением, Александр.