Странное дело, всегда думал, что NEW для безтеговых указателей выдаёт ошибку. Но это не так. Компилится.

## Код:
```
MODULE TestNew; IMPORT SYSTEM;
VAR
   p: POINTER TO ARRAY OF INTEGER;
   pu: POINTER [untagged] TO ARRAY OF INTEGER;

BEGIN
   NEW(p, 1);
   NEW(pu, 1)
END TestNew.
```

Что скажете? Есть ли смысл запретить выделение памяти через NEW для безтеговых указателей?

Логика тут простая. Безтеговые указатели это не Оберон-указатели. Это биндинги, низкий уровень, сторонние библиотеки, которые выделяют себе память сами, поэтому примешивать туда NEW как-то нехорошо и опасно.

Другое дело, если будет NEW(p, 1); pu := p; - тут хотя бы ясно, что безтеговый указатель используется на теговой сущности как низкоуровневый. Но наоборот будет весьма нехорошо.
(pu := p не компилится, ошибка несовместимого присваивания, что правильно)

Лично мне непонятно зачем безтеговый указатель как-то взаимодействует со сборкой мусора. По идее, он вообще неотслеживаемый.

Если будут аргументы за NEW(untagged), указывайте примеры, где бы это было полезно. Я сходу не могу таких придумать.