diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,9 @@
 # Hashtables changelog
 
+## 1.2.3.1
+
+  - Fix building with GHC <7.10 (thx Vanessa McHale)
+
 ## 1.2.3.0
 
   - update for Semigroup/monoid breakage with GHC 8.4 (thx Fumiaki Kinoshita)
diff --git a/hashtables.cabal b/hashtables.cabal
--- a/hashtables.cabal
+++ b/hashtables.cabal
@@ -1,11 +1,11 @@
 Name:                hashtables
-Version:             1.2.3.0
+Version:             1.2.3.1
 Synopsis:            Mutable hash tables in the ST monad
 Homepage:            http://github.com/gregorycollins/hashtables
 License:             BSD3
 License-file:        LICENSE
 Author:              Gregory Collins
-Maintainer:          greg@gregorycollins.net
+Maintainer:          greg@gregorycollins.net, mgoremeier@gmail.com
 Copyright:           (c) 2011-2014, Google, Inc., 2016-present contributors
 Category:            Data
 Build-type:          Simple
diff --git a/src/Data/HashTable/Class.hs b/src/Data/HashTable/Class.hs
--- a/src/Data/HashTable/Class.hs
+++ b/src/Data/HashTable/Class.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE BangPatterns #-}
+{-# LANGUAGE CPP          #-}
 
 -- | This module contains a 'HashTable' typeclass for the hash table
 -- implementations in this package. This allows you to provide functions which
@@ -45,11 +46,13 @@
   , toList
   ) where
 
-
+#if !MIN_VERSION_base(4,8,0)
+import           Control.Applicative
+#endif
 import           Control.Monad.ST
 import           Data.Hashable
-import           Data.Word        (Word)
-import           Prelude          hiding (mapM_)
+import           Data.Word           (Word)
+import           Prelude             hiding (mapM_)
 
 -- | A typeclass for hash tables in the 'ST' monad. The operations on these
 -- hash tables are typically both key- and value-strict.
diff --git a/src/Data/HashTable/IO.hs b/src/Data/HashTable/IO.hs
--- a/src/Data/HashTable/IO.hs
+++ b/src/Data/HashTable/IO.hs
@@ -61,6 +61,10 @@
 
 
 ------------------------------------------------------------------------------
+#if !MIN_VERSION_base(4,8,0)
+import           Control.Applicative
+import           Data.Word
+#endif
 import           Control.Monad.Primitive       (PrimState)
 import           Control.Monad.ST              (stToIO)
 import           Data.Hashable                 (Hashable)
diff --git a/src/Data/HashTable/Internal/Linear/Bucket.hs b/src/Data/HashTable/Internal/Linear/Bucket.hs
--- a/src/Data/HashTable/Internal/Linear/Bucket.hs
+++ b/src/Data/HashTable/Internal/Linear/Bucket.hs
@@ -27,6 +27,9 @@
 
 
 ------------------------------------------------------------------------------
+#if !MIN_VERSION_base(4,8,0)
+import           Control.Applicative
+#endif
 import           Control.Monad                        hiding (foldM, mapM_)
 import qualified Control.Monad
 import           Control.Monad.ST                     (ST)
diff --git a/src/Data/HashTable/ST/Basic.hs b/src/Data/HashTable/ST/Basic.hs
--- a/src/Data/HashTable/ST/Basic.hs
+++ b/src/Data/HashTable/ST/Basic.hs
@@ -96,6 +96,9 @@
 
 
 ------------------------------------------------------------------------------
+#if !MIN_VERSION_base(4,8,0)
+import           Control.Applicative
+#endif
 import           Control.Exception                 (assert)
 import           Control.Monad                     hiding (foldM, mapM_)
 import           Control.Monad.ST                  (ST)
@@ -105,7 +108,7 @@
 import           Data.Maybe
 import           Data.Monoid
 #if MIN_VERSION_base(4,9,0) && !MIN_VERSION_base(4,11,0)
-import Data.Semigroup
+import           Data.Semigroup
 #endif
 import qualified Data.Primitive.ByteArray          as A
 import           Data.STRef
diff --git a/src/Data/HashTable/ST/Cuckoo.hs b/src/Data/HashTable/ST/Cuckoo.hs
--- a/src/Data/HashTable/ST/Cuckoo.hs
+++ b/src/Data/HashTable/ST/Cuckoo.hs
@@ -78,6 +78,9 @@
 
 
 ------------------------------------------------------------------------------
+#if !MIN_VERSION_base(4,8,0)
+import           Control.Applicative
+#endif
 import           Control.Monad                                      hiding
                                                                      (foldM,
                                                                      mapM_)
@@ -449,7 +452,7 @@
 
     b1 = whichLine h1 sz
     b2 = whichLine h2 sz
-    
+
     he1 = hashToElem h1
     he2 = hashToElem h2
 
diff --git a/src/Data/HashTable/ST/Linear.hs b/src/Data/HashTable/ST/Linear.hs
--- a/src/Data/HashTable/ST/Linear.hs
+++ b/src/Data/HashTable/ST/Linear.hs
@@ -91,6 +91,10 @@
   ) where
 
 ------------------------------------------------------------------------------
+#if !MIN_VERSION_base(4,8,0)
+import           Control.Applicative
+import           Data.Word
+#endif
 import           Control.Monad                         hiding (foldM, mapM_)
 import           Control.Monad.ST
 import           Data.Bits
