struct Abc { mut: x int = 123 } fn (mut s Abc) close() ? { println('> CLOSE 1 s.x: ${s.x}') s.x = -1 println('> CLOSE 2 s.x: ${s.x}') } fn opt2() ?int { mut s := Abc{} dump(s.x) defer { s.close()? } return s.x } fn main() { println(opt2()?) }