diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,9 @@
+# Version 0.4.1.0 (February 5, 2017)
+
+  * Remove redundant constraints as reported by GHC 8.X.
+
+  * Widen dependency versions to latest available.
+
 # Version 0.4.0.0 (November 21, 2016)
 
   * Added the `resolve` function.  If you have a playlist that
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2013-2016 Peter Jones <pjones@devalot.com>
+Copyright (c) 2013-2017 Peter Jones <pjones@devalot.com>
 
 All rights reserved.
 
diff --git a/playlists.cabal b/playlists.cabal
--- a/playlists.cabal
+++ b/playlists.cabal
@@ -1,5 +1,5 @@
 name:          playlists
-version:       0.4.0.0
+version:       0.4.1.0
 synopsis:      Library and executable for working with playlist files.
 homepage:      https://github.com/pjones/playlists
 license:       BSD3
@@ -10,6 +10,7 @@
 category:      Text
 build-type:    Simple
 cabal-version: >= 1.18
+tested-with:   GHC==7.10.3, GHC==8.0.1
 description:
   Playlists is a library for working with media playlist files.  The
   original motivation for the library was extracting URLs for
@@ -103,7 +104,7 @@
 
   build-depends: base
                , bytestring
-               , optparse-applicative >= 0.10.0 && < 0.13.0
+               , optparse-applicative >= 0.10.0 && < 0.14.0
                , playlists
                , text
 
diff --git a/src/Text/Playlist/Internal/Resolve.hs b/src/Text/Playlist/Internal/Resolve.hs
--- a/src/Text/Playlist/Internal/Resolve.hs
+++ b/src/Text/Playlist/Internal/Resolve.hs
@@ -75,7 +75,7 @@
   ----------------------------------------------------------------------------
   -- Recursively process tracks in the 'Playlist' with a maximum depth
   -- of @n@.
-  go :: (Monad m) => Int -> Playlist -> m Playlist
+  go :: Int -> Playlist -> m Playlist
   go _ [] = return []
   go 0 xs = return xs
   go n xs = fmap join $ forM xs $ \track -> do
