// Generic structs - Box and Pair import Std::Io::{PrintLine, PrintInt}; struct Box { value: T, } struct Pair { first: T, second: U, } func Box_Get(self: *Box) -> T { return self.value; } func Box_Set(self: *Box, value: T) { self.value = value; } func Pair_GetFirst(self: *Pair) -> T { return self.first; } func Pair_GetSecond(self: *Pair) -> U { return self.second; } func Main() -> int { let b: Box = Box { value: 42 }; PrintLine("Box value:"); PrintInt(b.Get()); PrintLine(""); b.Set(100); PrintLine("Box after Set(100):"); PrintInt(b.Get()); PrintLine(""); let p: Pair = Pair { first: 10, second: "hello" }; PrintLine("Pair first:"); PrintInt(p.GetFirst()); PrintLine(""); let bp: *Box = &b; PrintLine("Box via pointer:"); PrintInt(bp.Get()); PrintLine(""); return 0; }