In PHP 8 we always throw on zpp failure, so we can always return the type for the valid argument case only. We'll want to also adjust the return type listings based on that (and drop MAY_BE_NULL/MAY_BE_FALSE where possible).