Use `pipes` for IO and `async` for concurrency