puti @= fn(x: int) { #C("printf(\"%ld\\n\", (long)x); "); }; putch @= fn(x: char) { #C("printf(\"%c\\n\", x); "); }; putf @= fn(x: float) { #C("printf(\"%f\\n\", (double)x); "); }; ptriple @= fn(m: int, n: int) (int, int, int) { m*m-n*n, 2*m*n, m*m+n*n }; f @= fn() int { a, b, c : int; a, b, c = ptriple(3, 2); a + b + c }; main @= fn() { puti(f()); A : [f()]int; };