struct Vec2f { x f32, y f32, fn x(v Vec2f) f32 { return (&v).x; } fn y(v *Vec2f) f32 { return v.y; } } extern fn add(l Vec2f, r Vec2f) Vec2f { return { l.x + r.x, l.y + r.y }; }