> Tail-called programs could execute any of the helpers that invalidate > packet pointers. Hence, conservatively assume that each tail call > invalidates packet pointers. Tail calls look like a clear limitation of "auto-infer packet invalidation effect" approach. Correct solution requires propagating effects in the dynamic callee-caller graph, unlikely to ever happen. I'm curious if assuming that every call to a global sub program invalidates packet pointers might be an option. Does it break too many programs in the wild?