fn main(args: [String]) println(args[0]) end int Index op [](i: I) -> T end int Slice : Index, Iterable length: ISize def fn iter() -> Iterator let mut i = 0 { if i < length then i++ Some(self[i - 1]) else None end } end end int Iterator fn next() -> Option end int Iterable fn iter() -> Iterator end extern class Array : Index, Slice extern length: ISize extern op [](i: ISize) -> T end int List : Index, Slice end