diff --git a/lib/Polysemy/Process.hs b/lib/Polysemy/Process.hs
--- a/lib/Polysemy/Process.hs
+++ b/lib/Polysemy/Process.hs
@@ -1,3 +1,4 @@
+-- |Description: Polysemy Effects for System Processes
 module Polysemy.Process (
   -- * Introduction
   -- $intro
@@ -7,13 +8,14 @@
   recv,
   recvError,
   send,
+  withProcess,
 
   -- * Interpreters
   interpretProcessNative,
   interpretProcessIOE,
 ) where
 
-import Polysemy.Process.Effect.Process (Process, recv, recvError, send)
+import Polysemy.Process.Effect.Process (Process, recv, recvError, send, withProcess)
 import Polysemy.Process.Interpreter.Process (interpretProcessNative)
 import Polysemy.Process.Interpreter.ProcessIOE (interpretProcessIOE)
 
diff --git a/lib/Polysemy/Process/Data/ProcessError.hs b/lib/Polysemy/Process/Data/ProcessError.hs
--- a/lib/Polysemy/Process/Data/ProcessError.hs
+++ b/lib/Polysemy/Process/Data/ProcessError.hs
@@ -1,5 +1,9 @@
+{-# options_haddock prune #-}
+-- |Description: ProcessError, Internal
 module Polysemy.Process.Data.ProcessError where
 
+-- |Signal error for 'Polysemy.Process.Process'.
 data ProcessError =
+  -- |The process terminated.
   Terminated Text
   deriving (Eq, Show)
diff --git a/lib/Polysemy/Process/Effect/Process.hs b/lib/Polysemy/Process/Effect/Process.hs
--- a/lib/Polysemy/Process/Effect/Process.hs
+++ b/lib/Polysemy/Process/Effect/Process.hs
@@ -2,6 +2,7 @@
 -- |Description: Process Effect, Internal
 module Polysemy.Process.Effect.Process where
 
+import Polysemy (makeSem_)
 import Polysemy.Conc.Effect.Scoped (Scoped, scoped)
 import Polysemy.Resume (type (!!))
 
@@ -11,6 +12,7 @@
 --
 -- @
 -- import Polysemy.Resume
+-- import Polysemy.Conc
 -- import Polysemy.Process
 -- import qualified System.Process.Typed as System
 --
@@ -31,7 +33,26 @@
   RecvError :: Process i o e m e
   Send :: i -> Process i o e m ()
 
-makeSem ''Process
+makeSem_ ''Process
+
+-- |Obtain a chunk of stdout.
+recv ::
+  ∀ i o e r .
+  Member (Process i o e) r =>
+  Sem r o
+
+-- |Obtain a chunk of stderr.
+recvError ::
+  ∀ i o e r .
+  Member (Process i o e) r =>
+  Sem r e
+
+-- |Send data to stdin.
+send ::
+  ∀ i o e r .
+  Member (Process i o e) r =>
+  i ->
+  Sem r ()
 
 -- |Create a scoped resource for 'Process'.
 withProcess ::
diff --git a/polysemy-process.cabal b/polysemy-process.cabal
--- a/polysemy-process.cabal
+++ b/polysemy-process.cabal
@@ -5,14 +5,14 @@
 -- see: https://github.com/sol/hpack
 
 name:           polysemy-process
-version:        0.5.0.0
+version:        0.5.1.0
 synopsis:       Polysemy Effects for System Processes
 description:    See <https://hackage.haskell.org/package/polysemy-process/docs/Polysemy-Process.html>
 category:       Concurrency
 homepage:       https://github.com/tek/polysemy-conc#readme
 bug-reports:    https://github.com/tek/polysemy-conc/issues
 author:         Torsten Schmits
-maintainer:     tek@tryp.io
+maintainer:     haskell@tryp.io
 copyright:      2021 Torsten Schmits
 license:        BSD-2-Clause-Patent
 license-file:   LICENSE
