// Iteration
module iter

// Iterate over integers in decreasing order.
// Do nothing if `start` < `end`.
pub fun forevck/iter/forev: forall<e> (start : int, end : int, action : (int) -> e ()) -> e ()(startstart: int: intstd/core/types/int: V, endend: int: intstd/core/types/int: V, actionaction: (int) -> $14 (): intstd/core/types/int: V -> ee: E (std/core/types/(): V)std/core/types/(): V): ee: E (std/core/types/(): V)std/core/types/(): V
  if startstart: int >=std/core/(>=).1: (x : int, y : int) -> bool endend: int then
    actionaction: (int) -> $14 ()(startstart: int)
    forevck/iter/forev: forall<e> (start : int, end : int, action : (int) -> e ()) -> e ()(startstart: int.decstd/core/dec: (i : int) -> int.unsafe-decreasingstd/core/types/unsafe-decreasing: forall<a> (x : a) -> a, endend: int, actionaction: (int) -> $14 ())std/core/types/(): ()