As the hackage page describes:
pipes is a clean and powerful stream processing library that lets you build and connect reusable streaming components
Programs implemented through streaming can often be succinct and composable, with simple, short functions allowing you to "slot in or out" features easily with the backing of the Haskell type system.
await :: Monad m => Consumer' a m a
Pulls a value from upstream, where
a is our input type.
yield :: Monad m => a -> Producer' a m ()
Produce a value, where
a is the output type.
It's highly recommended you read through the embedded
Pipes.Tutorial package which gives an excellent overview of the core concepts of Pipes and how