Открыл для себя, что LIMITED-типы могут расширяться, в рамках одного модуля.
Это правильно.
В Сообщении о языке этого не вижу:
Цитата:
Переменные записевого типа, имеющего атрибут LIMITED, могут размещаться [allocated] только внутри того модуля, где описан данный тип. Ограничение применимо как к статическому размещению посредством описания переменных (гл. 7), так и к динамическому размещению с помощью стандартной процедуры NEW (10.3).
Записевый тип, помеченный как ABSTRACT или EXTENSIBLE, допускает расширенное переопределение, т.е. можно определить новый записевый тип как расширение такого типа.
Это указано в документах "Что нового в Компонентном Паскале?" в табличке этих новых атрибутов, под сноской-звёздочккой.
И в "3 Приёмы проектирования в Блэкбоксе".
Цитата:
Компонентный Паскаль превосходит Java в нескольких других языковых конструктах. Один является ограниченными [limited] записями. Это записи, которые могут быть расширены и размещены только внутри описывающего их модуля.