Oh, I thought he does this already. Why was there a prepare, when it doesnt prepare the arg decoding.
Something I should have mentioned is that we could have avoided the new APIs if only there was space in the ffi_cif to stash a plan pointer. And I didn't want to break ABIs for this.