type IntWindow { values: Span, } fn second(values: Span) -> i32 { return values[1] } fn middle(values: Span) -> Span { return values[1..4] } fn spanTail(values: Span) -> Span { return values[2..5] } pub fn main(world: World) -> Void raises { let values: [5]i32 = [10, 20, 30, 40, 50] let span: Span = values let start: usize = 1 let end: usize = 4 let fromArray: Span = values[start..end] let fromSpan: Span = span[start..end] let window: IntWindow = IntWindow { values: middle(span) } if values[2] == 30 && second(span) == 20 && fromArray[0] == 20 && fromArray[2] == 40 && fromSpan[1] == 30 && window.values[2] == 40 && spanTail(span)[0] == 30 { check world.out.write("generic spans ok\n") } }