1 type Iterator<T> @abstract = 2 def move_next : bool 3 def get_value : T 4 5 def try_next = 6 if move_next 7 then Some get_value 8 else None 9 10 def get_next = try_next |> unwrap 11 12 class Iterable<T> = 13 def get_iterator : Iterator<T> 14 def try_size : Option<u32> 15