管道

正如 hackage 页面描述:

管道是一个干净而强大的流处理库,可让你构建和连接可重用的流组件

通过流程实现的程序通常可以简洁和可组合,简单,短的功能允许你在 Haskell 类型系统的支持下轻松插入或退出功能。

await::Monad m => Consumer' a m a

从上游拉取一个值,其中 a 是我们的输入类型。

yield::Monad m => a -> Producer' a m ()

生成一个值,其中 a 是输出类型。

强烈建议你阅读嵌入式 Pipes.Tutorial 软件包,它可以很好地概述管道的核心概念以及 ProducerConsumerEffect 如何相互作用。