struct St { mut: n int } fn f(ch chan mut St) { v := St{} ch <- v mut w := St{} ch <- w x := &St{} ch <- x mut y := St{} ch <- y mut z := &St{ n: 7 } // this works ch <- z } fn main() { c := chan mut St{} go f(c) mut y := <-c z := <-c println(y) println(z) }