void output_date(date d) { o_form("~%//f2/%//f2/", d.year, d.y_month, d.m_day); } void g(...) { integer i; record r; r["integer"] = o_integer; r["real"] = o_; r["text"] = o_text; r["date"] = output_date; i = 0; while (i < count()) { r[__type($i)]($i); o_byte('\n'); i += 1; } } integer main(void) { g("X.1", 707, .5, date().now); return 0; }