#import "modules/std.sx"; Point :: struct { x: i32; y: i32; } // 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(i32) 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) -> i32 { args.len } main :: () -> i32 { 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 }