namespace; include rt; // fn:type(args) declares a closure's result; returns are coerced to it fn put_f(x) { asm { x @ #1220 } return 0; } fn main() { let half = fn:float(int x) { return x; }; let twice = fn:int(int x) { return x * 2; }; rt.put_n(twice(4)); rt.put_c(32); put_f(half(3) / 2.0); rt.put_c(10); return 0; }