Коллеги, я вчитывался в Сообщение о языке СЯ, и пришел к такому выводу: СЯ определяет, что экспортированный идентификатор может использоваться в импортирующих модулях.
> -- LR писал(а):
> An identifier  exported by a module  may be used in other modules, if they import .
Больше других ограничений нет (я не обнаружил). Получается, что если Т - не экспортированное имя типа-записи, в котором экспортировано поле f - то последнее будет доступно в клиентских модулях:
## Код:
```
MODULE M; 
      TYPE 
         T = ARRAY 16 OF CHAR; 
         S = RECORD f*: CHAR END; 
      VAR 
         v*: T; 
         u*: S; 
   END M.

   MODULE B; 
      IMPORT M; 
      CONST L = LEN(M.v); 
   BEGIN 
      M.u.f := "Z" 
   END B.
```

И вообще свойства структуры, обозначенной T, будут доступны в клиентах - напр длина массива.

Оказалось, компилятор CP2 Того же мнения: приведенный пример скомпилирован без ошибок.

Это, с одной стороны, подчеркивает, что тип и имя типа - разные субстанции.

С другой стороны - какова практическая ценность такой особенности? Кто-нибудь пользовался этим осознанно? Как полагаете, почему так сделано: так вышло? так легче сделать компилятор? или есть какая-то иная целесообразность?