diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -7,6 +7,27 @@
 *de facto* standard Haskell versioning scheme.
 
 
+1.4.0.0
+-------
+
+- **Date**    2017-01-19
+- **Git tag** [concurrency-1.4.0.0][]
+- **Hackage** https://hackage.haskell.org/package/concurrency-1.4.0.0
+
+### Control.Monad.Conc.Class
+
+- The `peekTicket'` now has a more concrete type, to make deriving newtype instances of `MonadConc`
+  possible.
+
+    - Old: `MonadConc m => proxy m -> Ticket m a -> a`
+    - New: `MonadConc m => Proxy m -> Ticket m a -> a`
+
+[concurrency-1.4.0.0]: https://github.com/barrucadu/dejafu/releases/tag/concurrency-1.4.0.0
+
+
+---------------------------------------------------------------------------------------------------
+
+
 1.3.0.0
 -------
 
diff --git a/Control/Monad/Conc/Class.hs b/Control/Monad/Conc/Class.hs
--- a/Control/Monad/Conc/Class.hs
+++ b/Control/Monad/Conc/Class.hs
@@ -122,7 +122,31 @@
 -- Every @MonadConc@ has an associated 'MonadSTM', transactions of
 -- which can be run atomically.
 --
--- @since 1.3.0.0
+-- __Deriving instances:__ If you have a newtype wrapper around a type
+-- with an existing @MonadConc@ instance, you should be able to derive
+-- an instance for your type automatically, in simple cases.
+--
+-- For example:
+--
+-- > {-# LANGUAGE GeneralizedNewtypeDeriving #-}
+-- > {-# LANGUAGE StandaloneDeriving #-}
+-- > {-# LANGUAGE UndecidableInstances #-}
+-- >
+-- > data Env = Env
+-- >
+-- > newtype MyMonad m a = MyMonad { runMyMonad :: ReaderT Env m a }
+-- >   deriving (Functor, Applicative, Monad)
+-- >
+-- > deriving instance MonadThrow m => MonadThrow (MyMonad m)
+-- > deriving instance MonadCatch m => MonadCatch (MyMonad m)
+-- > deriving instance MonadMask  m => MonadMask  (MyMonad m)
+-- >
+-- > deriving instance MonadConc m => MonadConc (MyMonad m)
+--
+-- Do not be put off by the use of @UndecidableInstances@, it is safe
+-- here.
+--
+-- @since 1.4.0.0
 class ( Applicative m, Monad m
       , MonadCatch m, MonadThrow m, MonadMask m
       , MonadSTM (STM m)
@@ -421,10 +445,10 @@
 
   -- | Extract the actual Haskell value from a @Ticket@.
   --
-  -- The @proxy m@ is to determine the @m@ in the @Ticket@ type.
+  -- The @Proxy m@ is to determine the @m@ in the @Ticket@ type.
   --
-  -- @since 1.0.0.0
-  peekTicket' :: proxy m -> Ticket m a -> a
+  -- @since 1.4.0.0
+  peekTicket' :: Proxy m -> Ticket m a -> a
 
   -- | Perform a machine-level compare-and-swap (CAS) operation on a
   -- @CRef@. Returns an indication of success and a @Ticket@ for the
diff --git a/Control/Monad/STM/Class.hs b/Control/Monad/STM/Class.hs
--- a/Control/Monad/STM/Class.hs
+++ b/Control/Monad/STM/Class.hs
@@ -18,6 +18,29 @@
 -- import "Control.Concurrent.Classy.STM" (which exports
 -- "Control.Monad.STM.Class").
 --
+-- __Deriving instances:__ If you have a newtype wrapper around a type
+-- with an existing @MonadSTM@ instance, you should be able to derive
+-- an instance for your type automatically, in simple cases.
+--
+-- For example:
+--
+-- > {-# LANGUAGE GeneralizedNewtypeDeriving #-}
+-- > {-# LANGUAGE StandaloneDeriving #-}
+-- > {-# LANGUAGE UndecidableInstances #-}
+-- >
+-- > data Env = Env
+-- >
+-- > newtype MyMonad m a = MyMonad { runMyMonad :: ReaderT Env m a }
+-- >   deriving (Functor, Applicative, Monad, Alternative, MonadPlus)
+-- >
+-- > deriving instance MonadThrow m => MonadThrow (MyMonad m)
+-- > deriving instance MonadCatch m => MonadCatch (MyMonad m)
+-- >
+-- > deriving instance MonadSTM m => MonadSTM (MyMonad m)
+--
+-- Do not be put off by the use of @UndecidableInstances@, it is safe
+-- here.
+--
 -- __Deviations:__ An instance of @MonadSTM@ is not required to be a
 -- @MonadFix@, unlike @STM@. The @always@ and @alwaysSucceeds@
 -- functions are not provided; if you need these file an issue and
diff --git a/concurrency.cabal b/concurrency.cabal
--- a/concurrency.cabal
+++ b/concurrency.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                concurrency
-version:             1.3.0.0
+version:             1.4.0.0
 synopsis:            Typeclasses, functions, and data types for concurrency and STM.
 
 description:
@@ -32,7 +32,7 @@
 source-repository this
   type:     git
   location: https://github.com/barrucadu/dejafu.git
-  tag:      concurrency-1.3.0.0
+  tag:      concurrency-1.4.0.0
 
 library
   exposed-modules:     Control.Monad.Conc.Class
