Implementing coroutines, channels, message passing, etc.