diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,12 @@
+4.4.1.1
+-------
+* Fixed building on newer GHCs. (type synonyms require explicit foralls for unused variables these days)
+
+4.4.1
+-----
+* `transformers` 0.5 support
+* Documentation fixes
+
 4.4
 ---
 * Support `mmorph`
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -1,7 +1,7 @@
 either
 ======
 
-[![Build Status](https://secure.travis-ci.org/ekmett/either.png?branch=master)](http://travis-ci.org/ekmett/either)
+[![Hackage](https://img.shields.io/hackage/v/either.svg)](https://hackage.haskell.org/package/either) [![Build Status](https://secure.travis-ci.org/ekmett/either.png?branch=master)](http://travis-ci.org/ekmett/either)
 
 This provides an `Either` monad transformer that unlike `ErrorT` is unencumbered by a constraint on its `Left` hand argument. This is needed for a number of applications of this monad transformer, notably in [recursion-schemes](https://github.com/ekmett/recursion-schemes).
 
diff --git a/either.cabal b/either.cabal
--- a/either.cabal
+++ b/either.cabal
@@ -1,6 +1,6 @@
 name:          either
 category:      Control, Monads
-version:       4.4.1
+version:       4.4.1.1
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -38,7 +38,7 @@
     profunctors       >= 4       && < 6,
     semigroups        >= 0.8.3.1 && < 1,
     semigroupoids     >= 4       && < 6,
-    transformers      >= 0.2     && < 0.5,
+    transformers      >= 0.2     && < 0.6,
     transformers-base >= 0.4     && < 0.5
 
   extensions: CPP
diff --git a/src/Data/Either/Combinators.hs b/src/Data/Either/Combinators.hs
--- a/src/Data/Either/Combinators.hs
+++ b/src/Data/Either/Combinators.hs
@@ -237,7 +237,7 @@
 -- | Extract the left value or a default.
 --
 -- @
--- 'fromLeft' ≡ 'either' 'id'
+-- 'fromLeft' b ≡ 'either' 'id' ('const' b)
 -- @
 --
 -- >>> fromLeft "hello" (Right 42)
@@ -252,7 +252,7 @@
 -- | Extract the right value or a default.
 --
 -- @
--- 'fromRight' b ≡ 'either' b 'id'
+-- 'fromRight' b ≡ 'either' ('const' b) 'id'
 -- @
 --
 -- >>> fromRight "hello" (Right "world")
diff --git a/src/Data/Either/Validation.hs b/src/Data/Either/Validation.hs
--- a/src/Data/Either/Validation.hs
+++ b/src/Data/Either/Validation.hs
@@ -117,7 +117,7 @@
               Success y -> Right y)
 {-# INLINE _Success #-}
 
-type Iso s t a b = (Profunctor p, Functor f) => p a (f b) -> p s (f t)
+type Iso s t a b = forall p f. (Profunctor p, Functor f) => p a (f b) -> p s (f t)
 
 iso :: (s -> a) -> (b -> t) -> Iso s t a b
 iso sa bt = dimap sa (fmap bt)
