使用 runEffect 运行管道

我们使用 runEffect 来运行我们的 Pipe:

main::IO ()
main = do
  runEffect $ naturalsUntil 10 >-> intToStr >-> fancyPrint

请注意,runEffect 需要 Effect,这是一个独立的 Proxy,没有输入或输出:

runEffect::Monad m => Effect m r -> m r
type Effect = Proxy X () () X

(其中 X 是空类型,也称为 Void)。