При компиляции следующей процедуры столкнулся с ошибкой компиляции. Квадратик ошибки, помещённый после WHILE, гласит:
"Not enough registers; simplify expression".
## Код:
```
PROCEDURE (set: StdSet) Contains (rec: ANYPTR): BOOLEAN;
      VAR t: Term;
   BEGIN
      t := set.list.first;
      WHILE (t # NIL) & (Services.AdrOf(t(Item).rec^) < Services.AdrOf(rec^)) DO t := t.next END;
      RETURN (t # NIL) & (Services.AdrOf(t(Item).rec^) = Services.AdrOf(rec^))
   END Contains;
```


Любопытно. Компилятор не может распределить регистры... А выражение вроде не сложное. (Было SYSTEM.ADR, нормуль, а при копировании модуля отдельно в другую подсистему надо было отвязать от SYSTEM...)
Впрочем, упрощение очевидно и по любому нужно - второй-то адрес инвариантен.