diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,8 @@
+Changes in 0.4.1:
+
+* Get project to compile with ghc7.
+
+
 Changes in 0.4:
 
 * Felipe Lessa added applicative instances to GSL's MC and MCT.
diff --git a/lib/Control/Monad/MC/Sample.hs b/lib/Control/Monad/MC/Sample.hs
--- a/lib/Control/Monad/MC/Sample.hs
+++ b/lib/Control/Monad/MC/Sample.hs
@@ -236,12 +236,13 @@
 shuffle :: (MonadMC m) => [a] -> m [a]
 shuffle xs = let
     n = length xs
-    in shuffleInt n >>= \swaps -> (return . BV.toList . BV.create) $ do
-           marr <- MV.new n :: ST s (BMV.MVector s a)
+    in shuffleInt n >>= \swaps -> (return . BV.toList) $ BV.create $ do
+           marr <- MV.new n
            zipWithM_ (MV.unsafeWrite marr) [0 .. n-1] xs
            mapM_ (swap marr) swaps
            return marr
   where
+    swap :: BMV.MVector s a -> (Int,Int) -> ST s ()
     swap marr (i,j) | i == j    = return ()
                     | otherwise = do
         x <- MV.unsafeRead marr i
@@ -253,12 +254,13 @@
 shuffleU :: (Unbox a, MonadMC m) => [a] -> m [a]
 shuffleU xs = let
     n = length xs
-    in shuffleInt n >>= \swaps -> (return . V.toList . V.create) $ do
+    in shuffleInt n >>= \swaps -> (return . V.toList) $ V.create $ do
            marr <- MV.new n
            zipWithM_ (MV.unsafeWrite marr) [0 .. n-1] xs
            mapM_ (swap marr) swaps
            return marr
   where
+    swap :: (Unbox a) => MVector s a -> (Int,Int) -> ST s ()
     swap marr (i,j) | i == j    = return ()
                     | otherwise = do
         x <- MV.unsafeRead marr i
diff --git a/monte-carlo.cabal b/monte-carlo.cabal
--- a/monte-carlo.cabal
+++ b/monte-carlo.cabal
@@ -1,5 +1,5 @@
 name:           monte-carlo
-version:        0.4
+version:        0.4.1
 license:        BSD3
 license-file:   LICENSE
 author:         Patrick Perry
@@ -45,7 +45,7 @@
 
     build-depends:  base       >= 4     && < 5,
                     gsl-random >= 0.4.3 && < 0.5,
-                    mtl        >= 1.1   && < 1.2,
+                    mtl        >= 1.1   && < 3.0,
                     vector     >= 0.6   && < 0.8
 
     hs-source-dirs: lib
