Kurt Roeckx <Q@ping.be> writes:
> I'm trying to change all the walkers and mutators to have a more
> strict prototype. I had to do this with lots of casts.
Forget it ;-). There's a reason why they use a loose prototype,
and it's exactly what you just found: the notational penalty of
being strict vastly outweighs any possible benefit.
Arguably, given the need to cast everything to Node * or void *,
the tighter prototypes are contributing zero additional error
checking anyway.
regards, tom lane