Today I’m going to dive into the expressive power of Go channels and the select statement. To demonstrate how much can be implemented with just those two primitives I will rewrite the sync package from scratch. In doing so I’m just going to accept some compromises: This post is about expressive power, not speed. The examples will correctly express the primitives but might not be as fast as the rea