// Generic function type inference — multiple type parameters import Std::Io::{PrintLine, PrintInt}; struct Pair { first: T, second: U, } func MakePair(a: T, b: U) -> Pair { return Pair { first: a, second: b }; } func Pair_GetFirst(self: *Pair) -> T { return self.first; } func Main() -> int { // Inferred: T = int, U = String let p: Pair = MakePair(42, "hello"); PrintInt(p.GetFirst()); PrintLine(""); return 0; }