diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.0.7.0
+
+Add `Bluefin.Pipes` and `Bluefin.Pipes.Prelude`, `connectCoroutines`
+and `useImplWithin`
+
 ## 0.0.6.1
 
 * Documentation improvements
diff --git a/bluefin.cabal b/bluefin.cabal
--- a/bluefin.cabal
+++ b/bluefin.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               bluefin
-version:            0.0.6.1
+version:            0.0.7.0
 license:            MIT
 license-file:       LICENSE
 author:             Tom Ellis
@@ -28,6 +28,8 @@
       Bluefin.Exception,
       Bluefin.IO,
       Bluefin.Jump,
+      Bluefin.Pipes,
+      Bluefin.Pipes.Prelude,
       Bluefin.Reader,
       Bluefin.State,
       Bluefin.StateSource,
diff --git a/src/Bluefin/Compound.hs b/src/Bluefin/Compound.hs
--- a/src/Bluefin/Compound.hs
+++ b/src/Bluefin/Compound.hs
@@ -458,6 +458,7 @@
     Handle (mapHandle),
     useImpl,
     useImplIn,
+    useImplWithin,
 
     -- * Deprecated
 
diff --git a/src/Bluefin/Coroutine.hs b/src/Bluefin/Coroutine.hs
--- a/src/Bluefin/Coroutine.hs
+++ b/src/Bluefin/Coroutine.hs
@@ -12,6 +12,7 @@
 
     -- * Handlers
     forEach,
+    connectCoroutines,
 
     -- * Effectful operations
     yieldCoroutine,
diff --git a/src/Bluefin/Pipes.hs b/src/Bluefin/Pipes.hs
new file mode 100644
--- /dev/null
+++ b/src/Bluefin/Pipes.hs
@@ -0,0 +1,30 @@
+-- | Reimplementation of the pipes ("Pipes") ecosystem in Bluefin.
+-- See also "Bluefin.Pipes.Prelude".
+module Bluefin.Pipes
+  ( -- * The Proxy handle
+    Proxy,
+    Effect,
+    runEffect,
+    -- ** Producers
+    Producer,
+    yield,
+    for,
+    (~>),
+    (<~),
+    -- ** Consumers
+    Consumer,
+    await,
+    (>~),
+    (~<),
+    -- ** Pipes
+    Pipe,
+    cat,
+    (>->),
+    (<-<),
+    -- * Utilities
+    next,
+    each,
+  )
+where
+
+import Bluefin.Internal.Pipes
diff --git a/src/Bluefin/Pipes/Prelude.hs b/src/Bluefin/Pipes/Prelude.hs
new file mode 100644
--- /dev/null
+++ b/src/Bluefin/Pipes/Prelude.hs
@@ -0,0 +1,34 @@
+-- | Reimplementation of the @pipes@ prelude ("Pipes.Prelude") in
+-- Bluefin.  See also "Bluefin.Pipes".
+--
+-- @
+-- >>> 'Bluefin.Eff.runEff' $ \\io -> 'runEffect' $ do
+--       'stdinLn' io >-> 'takeWhile'' (/= "quit") >-> 'stdoutLn' io
+-- Test
+-- Test
+-- ABC
+-- ABC
+-- quit
+-- "quit"
+-- @
+module Bluefin.Pipes.Prelude
+  ( -- * Producers
+    stdinLn,
+    repeatM,
+    replicateM,
+    unfoldr,
+
+    -- * Consumers
+    stdoutLn,
+    mapM_,
+    print,
+    drain,
+
+    -- * Pipes
+    map,
+    mapM,
+    takeWhile',
+  )
+where
+
+import Bluefin.Internal.Pipes
