do not depend on reversed(range()) bounds having a numeric type and just use whatever spanning type we find