module main interface Test { test(fn (Test)) } struct Test1 { } fn (t Test1) test(f fn (Test)) { f(Test(t)) } fn main() { t := Test1{} t.test(fn [t] (t1 Test) { println('${t}, ${t1}') t.test(fn [t] (t2 Test) { println('${t}, ${t2}') }) }) }