BSD-3-Clause licensed by Gabriella Gonzalez
This version can be pinned in stack with:pipes-4.3.16@sha256:f52626e8789a9918cb389383c6ecfbba898c94e1790b6fc7991a4e256350489b,3883
Module documentation for 4.3.16
Used by 26 packages in 
nightly-2025-11-03(full list with versions):
declarative, 
di-monad, 
DPutils, 
hasty-hamiltonian, 
mighty-metropolis, 
pipes-aeson, 
pipes-attoparsec, 
pipes-binary, 
pipes-bytestring, 
pipes-concurrency, 
pipes-csv, 
pipes-extras, 
pipes-fastx, 
pipes-fluid, 
pipes-group, 
pipes-http, 
pipes-ordered-zip, 
pipes-parse, 
pipes-random, 
pipes-safe, 
pipes-wai, 
pipes-zlib, 
sequence-formats, 
sequenceTools, 
servant-pipes, 
speedy-slice pipes is a clean and powerful stream processing library that lets you build
and connect reusable streaming components
Advantages over traditional streaming libraries:
Concise API: Use simple commands like for, (>->), await, and yield
Blazing fast: Implementation tuned for speed, including shortcut fusion
Lightweight Dependency: pipes is small and compiles very rapidly,
including dependencies
Elegant semantics: Use practical category theory
ListT: Correct implementation of ListT that interconverts with pipes
Bidirectionality: Implement duplex channels
Extensive Documentation: Second to none!
Import Pipes to use the library.
Read Pipes.Tutorial for an extensive tutorial.
4.3.16
- Fix example code for 
every 
- Improved documentation for 
ListT 
4.3.15
4.3.14
- Add 
mapMaybe and wither, and more laws for filter and filterM. 
4.3.13
- Add 
MonadFail instance for Proxy 
4.3.12
- Fix space leak introduced in version 4.3.10
- This leak primarily affects the use of 
forever 
 
4.3.11
- Fix documentation for 
scanM 
4.3.10
- Relax 
Monad constraints to Functor 
- Support GHC 8.8
 
4.3.9
- Increase upper bound on 
exceptions 
4.3.8
- Increase upper bound on 
exceptions 
4.3.7
4.3.6
- Fix implementation of 
pass in MonadWriter instance for Proxy 
4.3.5
- Support 
Semigroup being a super-class of Monoid 
4.3.4
- Increase upper bound on 
mmorph 
4.3.3
- Make 
X a synonym for Data.Void.Void 
4.3.2
- BUG FIX: Fix 
MMonad instance for ListT
- The old instance was an infinite loop
 
 
4.3.1
- Support building against 
ghc-7.4 
4.3.0
- BREAKING CHANGE: Remove 
Alternative/MonadPlus instances for Proxy
- See commit 08e7302f43dbf2a40bd367c5ee73ee3367e17768 which explains why
 
 
- Add 
Traversable instance for ListT 
- New 
MonadThrow/MonadCatch/MMonad/Semigroup/MonadZip instances for
ListT 
- New 
MonadThrow/MonadCatch instances for Proxy 
- Fix lower bound on 
mtl 
- Increase upper bound on 
optparse-applicative 
4.2.0
- BREAKING CHANGE: Switch from 
ErrorT to ExceptT 
- Add 
Foldable instance for ListT 
- Fix all warnings
 
- Enable foldr/build fusion for 
toList 
4.1.9
- Increase lower bound on 
criterion 
- Increase upper bound on 
transformers for tests/benchmarks 
- Optimize code by delaying 
INLINABLE annotations 
4.1.8
- Increase upper bound on 
transformers 
- Prepare for MRP (Monad of no Return Proposal)
 
4.1.7
- Increase lower bound on 
deepseq 
- Add 
unfoldr 
- Add 
loop 
- Add 
toListM' 
- Improve efficiency of 
drop 
- License tutorial under Creative Commons license
 
4.1.6
- Increase lower bound on 
base 
- Add diagrams to 
Pipes.Core documentation 
- Add 
mapM_ 
- Add 
takeWhile' 
- Add 
seq 
- Improve efficiency of 
toListM 
4.1.5
- Increase upper bound on 
criterion 
4.1.4
- Increase upper bound on 
criterion 
- Add 
Monoid instance for Proxy 
4.1.3
- Increase lower bound on 
mtl 
- Re-export 
void 
- Add 
fold' 
- Add 
foldM' 
4.1.2
- Increase upper bounds on 
transformers and mtl 
4.1.1
- Add 
runListT 
- Add 
MMonad instance for Proxy 
- Add 
repeatM 
- Add laws to documentation of 
Pipes.Prelude utilities 
4.1.0
- Remove Haskell98 support
 
- Use internal 
X type instead of Data.Void 
- Document 
Pipes.Lift module:w 
- Add 
drain 
- Add 
sequence 
4.0.2
- Improve performance of 
each 
- Add tutorial appendix explaining how to work around quadratic time complexity
 
4.0.1
- Remove 
WriterT and RWST benchmarks 
- Add 
Enumerable instance for ErrorT 
- Add cabal flag for Haskell98 compilation
 
- Add several rewrite rules
 
- Add 
mtl instances for ListT 
- Fix implementation of 
pass, which did not satisfy Writer laws 
- Implement 
fail for ListT 
- Add type synonym table to tutorial appendix
 
- Add QuickCheck tests for 
pipes laws 
- Add 
mapFoldable 
- Add 
Monoid instance for ListT 
- Add manual proofs of 
pipes laws in laws.md 
4.0.0
Major upgrade of pipes to no longer use Proxy type class