Уважаемые специалисты,
Я вожусь с обероном (XDS), и вот с какой трудностью столкнулся:
нужно применить некий алгоритм к нескольким связаннам процедурам.
В Делфи это делается очень просто:

## Код:
```
type
  proc = function (x,y: single): single of object;

Procedure Algorithm (p: proc);
  begin
    ...
  end;
```


В Обероне связанные процедуры нельзя присваивать процедурным переменным.
Что же делать, чтобы не дублировать код Algorithm для каждой процедуры?

Можно, конечно, оформить Algorithm в виде записи, а её параметр в виде
связянной процедуры. В таком случае придётся расширять эту запись каждый раз,
когда надо применить Algorithm для какой-то процедуры, это не удобно.
Не может ли кто-нибудь подсказать более изящное решение?

И ещё: в Делфи приведённую процедуру Algorithm можно было вызывать с обычной процедурой
объекта, а не только с виртуальной. В Обероне аналог обычной процедуры объекта
- это процедура с параметром типа запись. И опять-таки встаёт проблема,
как такой вызов оформить безразлично к типу записи?

С уважением,
GH.