> -- adimetrius писал(а):
> Илья Евгенич, т.е. вы говорите, что с помощью композиции и расширения типов невозможно или невыигрышно реализовать стандартные контейнеры? Я правильно вас понимаю?Вот так, напр, почему не сделать:

Тут основная проблема начинается в том, что статической типизации уже нет. А когда у вас разнородное сложное дерево (JSON, например), то хотелось бы иметь контроль типов. А вам ещё и приведение типа после каждого доставания надо будет явно писать.

Для задач типа веба и работы с БД нужно объективно что-то типа стандартных структур скриптовых - массивы и объекты полей. Обычно это было преимуществом языков с динамической типизацией. Удобно для прикладника и строго типизированно это реализовано сейчас в веб-языках нового поколения - Dart и TypeScript.

Можно ли это сделать без дженериков в КП - кое-что можно.

Например, таким образом:

## Код:
```
TYPE
 Person = RECORD ... END;

 ArrayOfPerson = POINTER TO RECORD (Arrays.Array)
   elem: Person
 END
```


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