struct Test2 {} struct Test3 {} type Test = Test2 | Test3 fn (f Test) test(t ?Test) { $dbg; } fn (f Test) test2(t ?&Test) { $dbg; } fn test_int(a ?int) { $dbg; } fn main() { mut a := ?Test(Test2{}) a?.test(a) test_int(?int(none)) test_int(?int(1)) b := ?&Test(none) a?.test2(b) }