I'm not sure about clipping to 'precision'. This implies that we will update `page_step` if `precision` becomes too small. However, the `Range` trait does not do any dependency analysis or notification, so the user would still get in trouble if they set the step then changed the precision. I'm not sure that protecting the user from themselves in this case is needed.