Since we keep litigating this, I wonder if we should split internal assert into two variants, one for "this should be true invariant to c++ changes" and "this should be true invariant to python changes". Might be hard for ppl to understand