Probably you should stop your practice of using the same name for two
or more different things.
Maxima is quite capable of using the same name for more than one thing.
You might also confuse yourself further defining a function b as well as
using b as a local
variable in a block.
It may not be easy to explain, but it is usually easy to avoid such
overloading.
RJF