type Foo = int | string struct Struct { a ?Foo } fn r(a string) {} fn process(s ?Foo) { mut t := Struct{ a: s } if t.a is string { r(t.a) } } fn main() { s := ?Foo('hello') process(s) }