Mildly curious whether it is "right" to do this check first given the rings we'll encounter in the wild, but I think the optimal code path is unknowable.