I always felt like go channels were more of a clever solution than a good one. Goroutines are a pleasure to work with though.
I'm not saying these are "good", just wondering what alternatives look like?
This is what ZIO's type safe version looks like https://zio.dev/reference/stm/ Scala's for-comprehension is syntactic sugar for calls to flatMap, map, and withFilter, similar to Haskell's do-notation.