diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for config-schema
 
+## 0.3.1.1  -- 2017-05-17
+
+* Add support for GHC 7.10.3
+
 ## 0.3.1.0  -- 2017-05-16
 
 * Allow `generateDocs` to work on any ValueSpec, rather than
diff --git a/config-schema.cabal b/config-schema.cabal
--- a/config-schema.cabal
+++ b/config-schema.cabal
@@ -1,5 +1,5 @@
 name:                config-schema
-version:             0.3.1.0
+version:             0.3.1.1
 synopsis:            Schema definitions for the config-value package
 description:         This package makes it possible to defined schemas for use when
                      loading configuration files using the config-value format.
@@ -17,7 +17,7 @@
 cabal-version:       >=1.10
 homepage:            https://github.com/glguy/config-schema
 bug-reports:         https://github.com/glguy/config-schema/issues
-tested-with:         GHC==8.0.2
+tested-with:         GHC==7.10.3, GHC==8.0.2
 
 source-repository head
   type:                 git
@@ -25,15 +25,21 @@
 
 library
   exposed-modules:      Config.Schema, Config.Schema.Docs, Config.Schema.Load, Config.Schema.Spec
-  build-depends:        base           >=4.9   && <4.11,
+  build-depends:        base           >=4.8   && <4.11,
                         config-value   >=0.6   && <0.7,
                         containers     >=0.5   && <0.6,
                         free           >=4.12  && <4.13,
                         kan-extensions >=5.0.2 && <5.1,
-                        pretty         >=1.1.3 && <1.2,
+                        pretty         >=1.1.2 && <1.2,
                         semigroupoids  >=5.1   && <5.3,
                         text           >=1.2   && <1.3,
                         transformers   >=0.5   && <0.6
+
+  if flag(use-semigroups)
+        build-depends: base <4.9, semigroups >=0.18 && <0.19
+  else
+        build-depends: base >= 4.9
+
   hs-source-dirs:       src
   default-language:     Haskell2010
   ghc-options:          -Wall
@@ -45,3 +51,7 @@
   build-depends:        base, config-value, config-schema, text
   default-language:     Haskell2010
   ghc-options:          -Wall
+
+flag use-semigroups
+  default: False
+  manual: False
diff --git a/src/Config/Schema/Spec.hs b/src/Config/Schema/Spec.hs
--- a/src/Config/Schema/Spec.hs
+++ b/src/Config/Schema/Spec.hs
@@ -62,8 +62,8 @@
 
   ) where
 
+import           Control.Applicative              (Const(..))
 import           Control.Applicative.Free         (Ap, runAp, runAp_, liftAp)
-import           Data.Functor.Const               (Const(..))
 import           Data.Functor.Coyoneda            (Coyoneda(..), liftCoyoneda, lowerCoyoneda, hoistCoyoneda)
 import           Data.Functor.Alt                 (Alt(..))
 import           Data.List.NonEmpty               (NonEmpty)
