diff --git a/Generics/RepLib/Unify.hs b/Generics/RepLib/Unify.hs
--- a/Generics/RepLib/Unify.hs
+++ b/Generics/RepLib/Unify.hs
@@ -32,7 +32,7 @@
 import Generics.RepLib.PreludeReps()
 import Control.Monad.State
 #if MIN_VERSION_transformers(0,4,0)
-import Control.Monad.Except
+import Control.Monad.Trans.Except(ExceptT(..),throwE,runExceptT)
 #else
 import Control.Monad.Error
 #endif
@@ -57,8 +57,12 @@
 -- Error/State monad for unification. This version does not abstract the monad.
 #if MIN_VERSION_transformers(0,4,0)
 type UM n a b = ExceptT UnifyError (State (UnificationState n a)) b
+throwError :: UnifyError -> UM n a b
+throwError = throwE
 #else
 type UM n a b = ErrorT UnifyError (State (UnificationState n a)) b
+runExceptT :: ErrorT e m a -> m (Either e a)
+runExceptT = runErrorT
 #endif
 
 
diff --git a/RepLib.cabal b/RepLib.cabal
--- a/RepLib.cabal
+++ b/RepLib.cabal
@@ -1,5 +1,5 @@
 name:           RepLib
-version:        0.5.3.4
+version:        0.5.3.5
 license:        BSD3
 license-file:   LICENSE
 build-type:     Simple
