Communicating Sequential Processes in Golang