diff --git a/pipes-zeromq4.cabal b/pipes-zeromq4.cabal
--- a/pipes-zeromq4.cabal
+++ b/pipes-zeromq4.cabal
@@ -1,7 +1,8 @@
 name:                pipes-zeromq4
-version:             0.2.0.0
+version:             0.3.0.0
 synopsis:            Pipes integration for ZeroMQ messaging
 homepage:            https://github.com/peddie/pipes-zeromq4
+bug-reports:         https://github.com/peddie/pipes-zeromq4/issues
 license:             BSD3
 license-file:        LICENSE
 author:              Matthew Peddie <mpeddie@gmail.com>
@@ -20,14 +21,15 @@
 and would be overjoyed to receive feedback.
 
 }
+tested-with: GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.1.*
 
 library
   exposed-modules:     Pipes.ZMQ4
-  build-depends:       base >=4.6 && <4.9
+  build-depends:       base >=4.6 && <5
                      , zeromq4-haskell >=0.6 && <0.7
                      , bytestring >=0.10 && <0.11
-                     , semigroups >=0.16 && <0.17
-                     , pipes >=4.1 && <4.2
+                     , semigroups >=0.16 && <0.19
+                     , pipes >=4.1 && <4.4
                      , pipes-safe >=2.2 && <2.3
   hs-source-dirs:      src
   default-language:    Haskell2010
@@ -55,7 +57,6 @@
                      , zeromq4-haskell >=0.6 && <0.7
                      , bytestring >= 0.10 && < 0.11
   ghc-options:         -O2 -rtsopts -threaded
-  ghc-prof-options:    -O2 -prof -fprof-auto -fprof-cafs -rtsopts -threaded
 
 executable client
   if flag(examples)
@@ -71,9 +72,8 @@
                      , pipes-safe >=2.2 && <2.3
                      , zeromq4-haskell >=0.6 && <0.7
                      , bytestring >= 0.10 && < 0.11
-                     , semigroups >=0.16 && <0.17
+                     , semigroups >=0.16 && <0.19
   ghc-options:         -O2 -rtsopts -threaded
-  ghc-prof-options:    -O2 -prof -fprof-auto -fprof-cafs -rtsopts -threaded
 
 executable server
   if flag(examples)
@@ -89,9 +89,8 @@
                      , pipes-safe >=2.2 && <2.3
                      , zeromq4-haskell >=0.6 && <0.7
                      , bytestring >= 0.10 && < 0.11
-                     , semigroups >=0.16 && <0.17
+                     , semigroups >=0.16 && <0.19
   ghc-options:         -O2 -rtsopts -threaded
-  ghc-prof-options:    -O2 -prof -fprof-auto -fprof-cafs -rtsopts -threaded
 
 executable serverPipeline
   if flag(examples)
@@ -107,6 +106,5 @@
                      , pipes-safe >=2.2 && <2.3
                      , zeromq4-haskell >=0.6 && <0.7
                      , bytestring >= 0.10 && < 0.11
-                     , semigroups >=0.16 && <0.17
+                     , semigroups >=0.16 && <0.19
   ghc-options:         -O2 -rtsopts -threaded
-  ghc-prof-options:    -O2 -prof -fprof-auto -fprof-cafs -rtsopts -threaded
diff --git a/src/Pipes/ZMQ4.hs b/src/Pipes/ZMQ4.hs
--- a/src/Pipes/ZMQ4.hs
+++ b/src/Pipes/ZMQ4.hs
@@ -105,7 +105,7 @@
 -- received on a socket downstream.
 --
 -- @
--- receiveMessage sock = forever $ liftIO (Z.receiveMulti sock) >>= yield
+-- receiveMessage sock = liftIO (Z.receiveMulti sock) >>= yield
 -- @
 receiveMessage :: (Z.Receiver sck, MonadIO m) =>
                Z.Socket sck -> Producer' [B.ByteString] m ()
@@ -238,7 +238,7 @@
                   request >>=
                   liftIO . Z.sendMulti sock
 
--- | Create a 'Client'' from the given ZeroMQ parameters.  The 'Client''
+-- | Create a 'Client' from the given ZeroMQ parameters.  The 'Client'
 -- passes all messages it receives on the ZMQ socket upstream with
 -- 'request' and sends all corresponding replies back out the socket.
 setupClient :: (MonadSafe m, Base m ~ IO,
@@ -270,7 +270,7 @@
                       respond >>=
                       serverLoop sock
 
--- | Create a 'Server'' from the given ZeroMQ parameters.  The 'Server''
+-- | Create a 'Server' from the given ZeroMQ parameters.  The 'Server'
 -- sends all received requests out on the ZMQ socket and passes all
 -- messages it receives over the ZMQ socket back downstream with
 -- 'respond'.
