Насчёт неполноты информации в данном конкретном случае можно и поспорить. Добавление в сгенерированный текст типа T не представляется возможным, так как человек, читающий текст, решит, что тип экспортируется. А на самом деле это не так.

Более того, данный пример не имеет под собой реальной основы, что в данном случае имее особое значение. Ведь нормальный человек не станет давать своим переменным идентификаторы вида "dfgdsgd". А такое объявление## Код:
```
... POINTER TO ComplexDegree;
```
уже даёт представление о том, с чем нам придётся иметь дело. К тому же, в реальном примере будут ещё и экспортированные процедуры, принимающие в качестве параметра данный указатель, связанные процедуры. Это даст всю необходимую информацию для работы с типом. Вот и выходит, что сам тип и не нужен, да и скрыт он  не для того, что бы усложнить жизнь программисту, а для того, чтобы её облегчить.

Если после всего этого всё-таки потребуется иметь сам тип, то стоит подумать о целесообразности дальнейшего использования данного модуля. Ведь, это значит, что тип надо обрабатывать вручную, так как в модуле для этого не хватает инструментов. Соответственно, нет особой надобности в модуле, не избавившем от заявленной сложности.

Но возвращаясь к утверждению, что модуль не разделяется на интерфейс и реализацию, хочу заметить: раз не отвергается существование sym-файла и наличия в нём экспорта модуля, "таки" придётся признать, что интерфейс и реализация разделены : ).