diff --git a/checkers.cabal b/checkers.cabal
--- a/checkers.cabal
+++ b/checkers.cabal
@@ -1,5 +1,5 @@
 Name:                checkers
-Version:             0.4.13
+Version:             0.4.14
 Cabal-Version:       >= 1.6
 Synopsis:            Check properties on standard classes and data structures.
 Category:            Testing
@@ -29,7 +29,7 @@
   Build-Depends:       base >= 4 && < 5, random, QuickCheck>=2.3, array >= 0.1, semigroupoids >= 5 && < 6
   if !impl(ghc >= 8.0)
     build-depends:
-      semigroups          >= 0.18.4  && < 0.19
+      semigroups          >= 0.18.2  && < 0.19
 
   Exposed-Modules:
                        Test.QuickCheck.Utils
diff --git a/src/Control/Monad/Extensions.hs b/src/Control/Monad/Extensions.hs
--- a/src/Control/Monad/Extensions.hs
+++ b/src/Control/Monad/Extensions.hs
@@ -1,6 +1,6 @@
 module Control.Monad.Extensions (satisfiesM,if') where
 
-import Control.Applicative (Applicative,liftA3)
+import Control.Applicative (liftA3)
 
 satisfiesM :: Monad m => (a -> Bool) -> m a -> m a
 satisfiesM p x = x >>= if' p return (const (satisfiesM p x))
diff --git a/src/Test/QuickCheck/Instances/Array.hs b/src/Test/QuickCheck/Instances/Array.hs
--- a/src/Test/QuickCheck/Instances/Array.hs
+++ b/src/Test/QuickCheck/Instances/Array.hs
@@ -1,7 +1,6 @@
 {-# OPTIONS_GHC -Wall -fno-warn-orphans #-}
 module Test.QuickCheck.Instances.Array where
 
-import Control.Applicative ((<$>))
 import Test.QuickCheck
 import Data.Array
 
@@ -9,5 +8,5 @@
   arbitrary   =
     (\x -> listArray (0,fromIntegral (length x - 1)) x) <$> arbitrary
 
-instance CoArbitrary b => CoArbitrary (Array a b) where
+instance (Ix a, CoArbitrary b) => CoArbitrary (Array a b) where
   coarbitrary = coarbitrary . elems
