golang inspired channels for doing CSP-style concurrency