diff --git a/Data/HashMap/Array.hs b/Data/HashMap/Array.hs
--- a/Data/HashMap/Array.hs
+++ b/Data/HashMap/Array.hs
@@ -60,11 +60,14 @@
                  MutableArray#)
 import GHC.ST (ST(..))
 import Prelude hiding (filter, foldr, length, map, read)
-import qualified Prelude
 
 #if __GLASGOW_HASKELL__ >= 702
 import GHC.Exts (sizeofArray#, copyArray#, thawArray#, sizeofMutableArray#,
                  copyMutableArray#)
+#endif
+
+#if defined(ASSERTS)
+import qualified Prelude
 #endif
 
 import Data.HashMap.Unsafe (runST)
diff --git a/Data/HashMap/Base.hs b/Data/HashMap/Base.hs
--- a/Data/HashMap/Base.hs
+++ b/Data/HashMap/Base.hs
@@ -97,6 +97,11 @@
 import Data.HashMap.UnsafeShift (unsafeShiftL, unsafeShiftR)
 import Data.Typeable (Typeable)
 
+#if __GLASGOW_HASKELL__ >= 707
+import GHC.Exts (isTrue#)
+#endif
+
+
 ------------------------------------------------------------------------
 
 -- | Convenience function.  Compute a hash value for the given value.
@@ -1072,5 +1077,9 @@
 -- | Check if two the two arguments are the same value.  N.B. This
 -- function might give false negatives (due to GC moving objects.)
 ptrEq :: a -> a -> Bool
+#if __GLASGOW_HASKELL__ < 707
 ptrEq x y = reallyUnsafePtrEquality# x y ==# 1#
+#else
+ptrEq x y = isTrue# (reallyUnsafePtrEquality# x y ==# 1#)
+#endif
 {-# INLINE ptrEq #-}
diff --git a/unordered-containers.cabal b/unordered-containers.cabal
--- a/unordered-containers.cabal
+++ b/unordered-containers.cabal
@@ -1,5 +1,5 @@
 name:           unordered-containers
-version:        0.2.3.2
+version:        0.2.3.3
 synopsis:       Efficient hashing-based container types
 description:
   Efficient hashing-based container types.  The containers have been
