diff --git a/hmpfr.cabal b/hmpfr.cabal
--- a/hmpfr.cabal
+++ b/hmpfr.cabal
@@ -1,15 +1,17 @@
 name:                hmpfr
-version:             0.3.3.1
+version:             0.3.3.2
 synopsis:            Haskell binding to the MPFR library
 description:         Haskell binding to the MPFR library. This version is compatible
                      with MPFR 2.4.* and later and will not work with previous releases
                      of the MPFR library.
                      .
                      /Since MPFR uses GMP, this library features infrequent but serious errors/
-                     /with a ghc (at least <= 7.4.1) that has been compiled with the default integer-gmp./  
+                     /with a ghc that has been compiled with the default integer-gmp./  
                      /When using ghc, it is recommended to use one compiled with a modified integer-gmp,/
                      /as described at http://code.google.com/p/hmpfr/wiki/GHCWithRenamedGMP, or/
                      /with integer-simple, as described at http://code.google.com/p/hmpfr/wiki/GHCWithoutGMP./
+                     /There is a hope that at some point future versions of ghc will not need any modification for/
+                     /hmpfr to work with them correctly./
                      .
                      The library includes both a pure and a mutable interface.
                      The mutable interface should have a lot less overhead 
diff --git a/src/Data/Number/MPFR/Assignment.hs b/src/Data/Number/MPFR/Assignment.hs
--- a/src/Data/Number/MPFR/Assignment.hs
+++ b/src/Data/Number/MPFR/Assignment.hs
@@ -20,10 +20,9 @@
 
 import Data.Number.MPFR.Arithmetic
 
---import Foreign.Storable
-
 #ifdef INTEGER_SIMPLE
 import GHC.Integer.Simple.Internals
+import Foreign.Storable (sizeOf)
 #endif
 
 #ifdef INTEGER_GMP
diff --git a/src/Data/Number/MPFR/FFIhelper.hsc b/src/Data/Number/MPFR/FFIhelper.hsc
--- a/src/Data/Number/MPFR/FFIhelper.hsc
+++ b/src/Data/Number/MPFR/FFIhelper.hsc
@@ -9,7 +9,11 @@
 import Data.Int
 
 import Foreign.C.String(CString)
+#if (__GLASGOW_HASKELL__ >= 704)
+import Foreign.C.Types(CULong(..), CLong(..), CInt(..), CUInt(..), CDouble(..), CChar)
+#else
 import Foreign.C.Types(CULong, CLong, CInt, CUInt, CDouble, CChar)
+#endif
 import Foreign.Ptr(Ptr)
 import Foreign.Marshal(alloca)
 import Foreign.Storable
diff --git a/src/Data/Number/MPFR/Mutable/Internal.hs b/src/Data/Number/MPFR/Mutable/Internal.hs
--- a/src/Data/Number/MPFR/Mutable/Internal.hs
+++ b/src/Data/Number/MPFR/Mutable/Internal.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module Data.Number.MPFR.Mutable.Internal (
        module Data.Number.MPFR.FFIhelper,
        withMutableMPFRBA,
@@ -20,9 +21,12 @@
 
 import Data.STRef(STRef, readSTRef, writeSTRef, newSTRef)
 
+#if (__GLASGOW_HASKELL__ >= 702)
 import Control.Monad.ST(ST)
 import Control.Monad.ST.Unsafe(unsafeIOToST)
-
+#else
+import Control.Monad.ST(ST,unsafeIOToST)
+#endif
 import Foreign.Marshal.Utils(copyBytes)
 
 import Foreign.ForeignPtr(withForeignPtr, mallocForeignPtrBytes)
