"Abstract supertype of ranged objects which map a range
of `Comparable` keys to ranges of values. The type
parameter `Span` abstracts the type of the resulting
range.
A span may be obtained from an instance of `Ranged`
using the span operator:
print(\"hello world\"[0..5])
"
see (`interface List`,
`interface Sequence`,
`class String`)
shared interface Ranged<in Index, out Span> of Span
given Index satisfies Comparable<Index> {
"Obtain a span containing the mapped values between
the two given indices."
shared formal Span span(Index from, Index to);
"Obtain a span containing the mapped values between
the starting index and the end of the receiver."
shared formal Span spanFrom(Index from);
"Obtain a span containing the mapped values between
the start of the receiver and the end index."
shared formal Span spanTo(Index to);
"Obtain a segment containing the mapped values
starting from the given index, with the given
length."
shared formal Span segment(Index from, Integer length);
}