Thomas Munro <thomas.mu...@gmail.com> writes: > there's also the walker stuff[1] to address.
Yeah. I just did some experimentation with that, and it looks like neither gcc nor clang will cut you any slack at all for declaring an argument as "void *": given say typedef bool (*tree_walker_callback) (Node *node, void *context); the walker functions also have to be declared with exactly "void *" as their second argument. So it's going to be just as messy and full-of-casts as we feared. Still, I'm not sure we have any alternative. regards, tom lane