Question: a small odd parsing issue with keyword passing of parameters

I am learning argument passing using keyword, which I like more than positional arguments.

I wanted to have an argument which should be only an equation, to be passed in.

So I typed

restart;
foo:=proc({the_equation::`=`:=NULL}) 
   print (the_equation); 
end proc;

And this works when calling it as

the_equation := y=5:
foo('the_equation'= the_equation);

But it does not work, if I put the value of "the_equation" variable in the call itself, like this

foo('the_equation'= y=5);
Error, `=` unexpected

Which is a little strange. So it seems frontend does not like to parse it. A workaround (other than using a variable) is

foo('the_equation'= 'y=5');

Just found it a little odd, that using a variable for y=5 works, but not putting value of the variable  directly there. I thought they should be equivalent.

Since I expected Maple to evaluate and replace the variable "the_equation" back by "y=5" so we end up with the call "foo('the_equation'= y=5);".

But that is not what seems to happen in Maple.

Question is, should the call foo('the_equation'= y=5);  have failed parsing?

Please Wait...