diff --git a/src/Control/Monad/Union.hs b/src/Control/Monad/Union.hs
--- a/src/Control/Monad/Union.hs
+++ b/src/Control/Monad/Union.hs
@@ -35,12 +35,12 @@
 
 -- | Union find monad.
 newtype UnionM l a = U {
-    runU :: (forall s . StateT (UState s l) (ST s) a)
+    runU :: forall s . StateT (UState s l) (ST s) a
 }
 
 instance Monad (UnionM l) where
     return x =  U (return x)
-    f >>= b = U (runU f >>= runU . b)
+    f >>= b = U (runU f >>= \v -> runU (b v))
 
 instance Functor (UnionM l) where
     fmap = liftM
@@ -50,7 +50,7 @@
     (<*>) = ap
 
 instance MonadFix (UnionM l) where
-    mfix a = U (mfix (runU . a))
+    mfix a = U (mfix (\v -> runU (a v)))
 
 -- | Run a union find computation.
 run :: UnionM l a -> a
diff --git a/union-find-array.cabal b/union-find-array.cabal
--- a/union-find-array.cabal
+++ b/union-find-array.cabal
@@ -1,8 +1,7 @@
 name:          union-find-array
-version:       0.1.0.2
+version:       0.1.0.3
 stability:     experimental
 author:        Bertram Felgenhauer
-homepage:      http://cl-informatik.uibk.ac.at/software/haskell-rewriting/
 maintainer:    Bertram Felgenhauer <int-e@gmx.de>
 copyright:     Copyright (c) 2010-2013, Bertram Felgenhauer
 license:       MIT
@@ -16,7 +15,7 @@
     querying the result of a union find construction.
 homepage:      https://github.com/haskell-rewriting/union-find-array
 build-type:    Simple
-cabal-version: >= 1.6
+cabal-version: >= 1.10
 
 source-repository head
     type: git
@@ -35,7 +34,8 @@
         array >= 0.3 && < 0.6,
         mtl >= 1.1 && < 2.3,
         base >= 4 && < 5
-    extensions:
+    default-language: Haskell2010
+    other-extensions:
         GeneralizedNewtypeDeriving
         RankNTypes
         MultiParamTypeClasses
