Как я понял, вопрос про приемник Receiver метода (типовой процедуры). Здесь правило проще: если ваш тип - POINTER, то приемник - параметр-значение, если ваш тип - RECORD, то параметр-переменная.
## Код:
```
TYPE 
   ObjPtr = POINTER TO ObjDesc;
   ObjDesc = RECORD ... END;

PROCEDURE (op: ObjPtr) P, NEW; END P;

PROCEDURE (VAR obj: ObjDesc) Q, NEW; END Q;
```
