puti @= fn(x: int) { #C("printf(\"%ld\\n\", (long)x); "); }; putf @= fn(x: float) { #C("printf(\"%f\\n\", (double)x); "); }; // f @= fn(x @ int) Type { // struct { // a: [x]float; // } // }; pair @= fn(s @ Type) Type { struct { x:s; y:s; } }; main @= fn() { a : pair(int); b : pair(int); c : pair(float); a.x = 5; puti(a.x); c.x = 13.3; putf(c.x); };