I wonder if maybe instead of `#range` we can simply delegate `#minimum` and `#maximum` to the type?