(This is caused by it not being clear what is "eating" pointers and what
is not. That'd be helped a lot if the appropriate parameters were const
refs instead of non-const pointers--but the 2sand3s and 4s conversions
are being done, which prevents that.)