rbs
rbs copied to clipboard
`_Range[T]` shouldn't return `T?` for `begin` and `end`
The interface _Range[T] currently returns T? for begin and end. This precludes ranges which require both a beginning and an end (eg used in Kernel#rand).
The solution is to make begin and end return T, and convert all current uses of _Range[T] to _Range[T?]. (There aren't any uses of _Range[T] currently—definitions that use it are currently in-flight and haven't been merged yet)