fn main() unit = { run(print-answer) do-add(add, 1, 2) println("map: {map(1, int-to-uint)}") } fn run(f: fn() unit) unit = f() fn print-answer() unit = println("The answer is {42}") fn add(a: int, b: int) int = { a + b } fn do-add(f: fn(int, int) int, a: int, b: int) unit = println("a + b = {f(a, b)}") fn map[A, B](val: A, f: fn(A) B) B = { f(val) } fn int-to-uint(val: int) uint = uint(val)