Доброго времени!
Ситуация следующая: пишу программу, которая рисует всякие штучки, например синусоида. Так выглядит модуль:
## Код:
```
MODULE Painter;

   IMPORT Views, Ports, Math;

   TYPE View = POINTER TO RECORD (Views.View)

    END;

   PROCEDURE (v: View)  Restore (f: Views.Frame;l, t, r, b: INTEGER);
   VAR
      ...
   BEGIN
      //рисую синусоиду      
      
   END Restore;


   PROCEDURE Deposit*;
      VAR v: View;
   BEGIN
      NEW(v); Views.Deposit(v)
   END Deposit;

END Painter.

(!) "Painter.Deposit; StdCmds.Open"
```


Т.е. как бы выходит некая линейность, которая меня смущает. Одна процедура прорисовывает, другая ее выводит.
Хотелось бы сделать следующим образом: пользователь выбирает например не синус, а тангенс. Уже другая процедура прорисовывает, но выводит другая.

PS если объясняю не понятно, будьте добры, подскажите хотя бы почему при изменении названия процедуры Restore, выводится ошибка:Missing NEW attribute, куда NEW лепить то?

Спасибо!