Переводил тут модуля из Бутылки на ББ. На законное действие s := s * (-1) ББ упорно выдаёт ошибку. Начал проверять:
## Код:
```
MODULE PrivNeg;

PROCEDURE Do*;
VAR s : SHORTINT; i : INTEGER;
BEGIN
   i := 0 - i;
   s := 0 - s [x]<--Incompatible assigment
END Do;

END PrivNeg.
```

Вопрос: насколько законна ошибка? И если законна, то почему только для SHORTINT, а для INTEGER ошибки нет?