Change value Pbindef while running

Hello everybody!
I am just exploring the capabilities of the JITLib, and I was wondering:
Given a SynthDef called \ops and the following Pbindef :

(
Pbindef(\nome, 
	\instrument, \ops,
	\freq, ~a,
	\dur, 0.7
).play.quant_(1)
)

why does changing the value of ~a while the Pbindef is running does not update the freq argument in the SynthDef?
The following Task does:

(
Task({
	inf.do({
		Synth(\ops, [\freq, ~a]);
		0.7.wait;
	})
}).play
)

Thank you!

When you write a sc will ressolve this value when you evaluate the code block, but if you write {a} sc will only ressolve the variable when the function is evaluate.

Note the lack of curly braces in the pattern example and their presence in the task.

However, you can’t simply have a function in a pattern, instead you need to wrap the variable in a special pattern… In this case Pfunc({a})should work.

Of course!
Pbindef is not a function!
Thank you @jordan