diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -57,3 +57,6 @@
 
 0.1.3.2:
 		remove unicode symbols
+
+0.1.3.3:
+		updated to reflect change in mtl > 2
diff --git a/hsignal.cabal b/hsignal.cabal
--- a/hsignal.cabal
+++ b/hsignal.cabal
@@ -1,7 +1,8 @@
 Name:               hsignal
-Version:            0.1.3.2
+Version:            0.1.3.3
 License:            BSD3
 License-file:       LICENSE
+Copyright:          (c) A.V.H. McPhail 2010, 2011
 Author:             Vivian McPhail
 Maintainer:         haskell.vivian.mcphail <at> gmail <dot> com
 Stability:          provisional
@@ -17,7 +18,7 @@
      .
      Feature requests, suggestions, and bug fixes welcome.
 Category:           Math
-tested-with:        GHC ==6.12.1
+tested-with:        GHC ==7.0.1
 
 cabal-version:      >=1.8
 
@@ -33,12 +34,12 @@
 library
 
     Build-Depends:      base >= 4 && < 5,
-                        mtl, 
+                        mtl > 2, 
                         array,
                         bytestring, storable-complex, binary,
                         hmatrix >= 0.10.0.0,
-                        hmatrix-gsl-stats >= 0.1.2.6,
-                        hstatistics >= 0.2.2.5
+                        hmatrix-gsl-stats >= 0.1.2.9,
+                        hstatistics >= 0.2.2.7
 
     Extensions:         ForeignFunctionInterface
 
diff --git a/lib/Numeric/Signal/EEG.hs b/lib/Numeric/Signal/EEG.hs
--- a/lib/Numeric/Signal/EEG.hs
+++ b/lib/Numeric/Signal/EEG.hs
@@ -1,4 +1,3 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Numeric.Signal.EEG
diff --git a/lib/Numeric/Signal/EEG/BDF.hs b/lib/Numeric/Signal/EEG/BDF.hs
--- a/lib/Numeric/Signal/EEG/BDF.hs
+++ b/lib/Numeric/Signal/EEG/BDF.hs
@@ -1,4 +1,3 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Numeric.Signal.EEG.BDF
diff --git a/lib/Numeric/Signal/Multichannel.hs b/lib/Numeric/Signal/Multichannel.hs
--- a/lib/Numeric/Signal/Multichannel.hs
+++ b/lib/Numeric/Signal/Multichannel.hs
@@ -1,5 +1,7 @@
-{-# OPTIONS_GHC -fglasgow-exts #-}
-{-# OPTIONS_GHC -XUndecidableInstances #-}
+{-# LANGUAGE UndecidableInstances,
+             FlexibleContexts,
+             TypeFamilies,
+             ScopedTypeVariables #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Numeric.Signal.Multichannel
@@ -38,6 +40,8 @@
 import qualified Data.Array.IArray as I
 import Data.Ix
 
+--import Data.Word
+
 import Control.Concurrent
 --import Control.Concurrent.MVar
 
@@ -108,9 +112,7 @@
                               put $! fmap convert d
         where convert v = let (mi,ma) = (minElement v,maxElement v)
                               v' = mapVector (\x -> round $ (x - mi)/(ma - mi) * (fromIntegral (maxBound :: Word32))) v
-                          in (mi,ma,(v' :: Vector Word32)) 
-
-
+                          in (mi,ma,v' :: Vector Word32) 
 
     get = do
           s <- get
@@ -119,9 +121,9 @@
           l <- get
           de <- get
           f <- get
-          d <- (get :: Get (I.Array Int (a,a,Vector Word32)))
+          (d :: I.Array Int (a,a,Vector Word32)) <- get
           return $! (MC s p c l de f (seq d (fmap convert) d))
-              where convert (mi,ma,v) = mapVector (\x -> ((fromIntegral x) :: a) / (fromIntegral (maxBound :: Word32)) * (ma - mi) + mi) v
+              where convert (mi,ma,v) = mapVector (\x -> ((fromIntegral x)) / (fromIntegral (maxBound :: Word32)) * (ma - mi) + mi) v
 
 -----------------------------------------------------------------------------
 
@@ -235,7 +237,7 @@
 
 
 -- | filter the data with the given passband
-filter :: (S.Filterable a, Double ~ DoubleOf a, Container Vector (Complex a), Convert (Complex a)) ⇒ 
+filter :: (S.Filterable a, Double ~ DoubleOf a, Container Vector (Complex a), Convert (Complex a)) => 
          (Int,Int) -> Multichannel a -> Multichannel a
 filter pb m = let m' = mapConcurrently (S.broadband_filter (_sampling_rate m) pb) m
               in m' { _filtered = Just pb }
@@ -254,7 +256,7 @@
 -----------------------------------------------------------------------------
 
 -- | calculate the mutual information of the phase between pairs of channels (fills upper half of matrix)
-mi_phase :: (S.Filterable a, Double ~ DoubleOf a) ⇒
+mi_phase :: (S.Filterable a, Double ~ DoubleOf a) =>
            Multichannel a      -- ^ input data
          -> Matrix Double
 mi_phase m = let d = fmap double $ _data m
