#import "modules/std.sx"; Point :: struct { x: s32; y: s32; } // Print all arguments — accepts any type, dispatches via type-switch print_any :: (args: ..Any) { for args: (it) { type := type_of(it); if type == { case int: out(int_to_string(cast(s32) it)); case string: out(cast(string) it); case bool: out(bool_to_string(cast(bool) it)); case float: out(float_to_string(cast(f64) it)); case Point: { p := cast(Point) it; out("("); out(int_to_string(p.x)); out(","); out(int_to_string(p.y)); out(")"); } } out(" "); } out("\n"); } count :: (args: ..Any) -> s32 { args.len; } main :: () -> s32 { print_any(42, "hello", true, 3.14); // Test with struct p := Point.{ x=10, y=20 }; print_any("point:", p, 99); // Test count out(int_to_string(count(1, 2, 3))); out("\n"); 0; }