diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 3.4.1
+
+- Drop support for GHC versions that haven't implemented the Semigroup-Monoid
+  Proposal.
+
 ## 3.4.0.2
 
 - Massaging bounds to support more GHC versions.
diff --git a/kanji.cabal b/kanji.cabal
--- a/kanji.cabal
+++ b/kanji.cabal
@@ -1,18 +1,20 @@
-cabal-version: 2.2
+cabal-version:      2.2
+name:               kanji
+version:            3.4.1
+synopsis:
+  Perform 漢字検定 (Japan Kanji Aptitude Test) level analysis on Japanese Kanji
 
-name:         kanji
-version:      3.4.0.2
-synopsis:     Perform 漢字検定 (Japan Kanji Aptitude Test) level analysis on Japanese Kanji
-description:  Perform 漢字検定 (Japan Kanji Aptitude Test) level analysis on Japanese Kanji.
-category:     Data
-homepage:     https://github.com/fosskers/kanji
-author:       Colin Woodbury
-maintainer:   colin@fosskers.ca
-copyright:    2011 - 2019 Colin Woodbury
-license:      BSD-3-Clause
-license-file: LICENSE
-build-type:   Simple
+description:
+  Perform 漢字検定 (Japan Kanji Aptitude Test) level analysis on Japanese Kanji.
 
+category:           Data
+homepage:           https://github.com/fosskers/kanji
+author:             Colin Woodbury
+maintainer:         colin@fosskers.ca
+copyright:          2011 - 2020 Colin Woodbury
+license:            BSD-3-Clause
+license-file:       LICENSE
+build-type:         Simple
 extra-source-files:
   README.md
   CHANGELOG.md
@@ -20,57 +22,58 @@
 common commons
   default-language: Haskell2010
   build-depends:
-      base >= 4.7 && < 5
-    , aeson >= 1.2
-    , containers >= 0.5.8
+    , aeson       >=1.2
+    , base        >=4.7   && <5
+    , containers  >=0.5.8
     , text
+
   ghc-options:
-      -Wall
-      -fwarn-incomplete-record-updates
-      -fwarn-incomplete-uni-patterns
+    -Wall -fwarn-incomplete-record-updates
+    -fwarn-incomplete-uni-patterns
 
 library
-  import: commons
-  hs-source-dirs: lib
+  import:          commons
+  hs-source-dirs:  lib
   build-depends:
-      deepseq
+    , deepseq
     , hashable
+
   exposed-modules:
-      Data.Kanji
-      Data.Kanji.Levels
-      Data.Kanji.Types
+    Data.Kanji
+    Data.Kanji.Levels
+    Data.Kanji.Types
 
 executable kanji
-  import: commons
-  main-is: nanq.hs
+  import:         commons
+  main-is:        nanq.hs
   hs-source-dirs: nanq
-  ghc-options: -O2
+  ghc-options:    -O2
   build-depends:
-      aeson-pretty
+    , aeson-pretty
     , kanji
-    , microlens >=0.4
-    , microlens-aeson >=2.2
-    , optparse-applicative >=0.14
+    , microlens             >=0.4
+    , microlens-aeson       >=2.2
+    , optparse-applicative  >=0.14
     , transformers
 
 test-suite kanji-test
-  import: commons
-  type: exitcode-stdio-1.0
-  main-is: Test.hs
+  import:         commons
+  type:           exitcode-stdio-1.0
+  main-is:        Test.hs
   hs-source-dirs: test
-  ghc-options: -threaded -with-rtsopts=-N
+  ghc-options:    -threaded -with-rtsopts=-N
   build-depends:
-      HUnit-approx >=1.1
+    , HUnit-approx  >=1.1
     , kanji
-    , tasty >=0.11
-    , tasty-hunit >=0.9
+    , tasty         >=0.11
+    , tasty-hunit   >=0.9
 
 benchmark kanji-bench
-  import: commons
-  type: exitcode-stdio-1.0
-  main-is: Bench.hs
+  import:         commons
+  type:           exitcode-stdio-1.0
+  main-is:        Bench.hs
   hs-source-dirs: bench
-  ghc-options: -threaded -O2
+  ghc-options:    -threaded -O2
   build-depends:
-      criterion >=1.1
+    , criterion  >=1.1
     , kanji
diff --git a/lib/Data/Kanji.hs b/lib/Data/Kanji.hs
--- a/lib/Data/Kanji.hs
+++ b/lib/Data/Kanji.hs
@@ -2,7 +2,7 @@
 
 -- |
 -- Module    : Data.Kanji
--- Copyright : (c) Colin Woodbury, 2015 - 2019
+-- Copyright : (c) Colin Woodbury, 2015 - 2020
 -- License   : GPL3
 -- Maintainer: Colin Woodbury <colin@fosskers.ca>
 --
@@ -40,7 +40,6 @@
 import           Data.Kanji.Types
 import           Data.List (group, sort)
 import qualified Data.Map.Strict as M
-import           Data.Semigroup ((<>))
 import qualified Data.Set as S
 import qualified Data.Text as T
 
diff --git a/lib/Data/Kanji/Levels.hs b/lib/Data/Kanji/Levels.hs
--- a/lib/Data/Kanji/Levels.hs
+++ b/lib/Data/Kanji/Levels.hs
@@ -1,6 +1,6 @@
 -- |
 -- Module    : Data.Kanji.Levels
--- Copyright : (c) Colin Woodbury, 2015 - 2019
+-- Copyright : (c) Colin Woodbury, 2015 - 2020
 -- License   : GPL3
 -- Maintainer: Colin Woodbury <colin@fosskers.ca>
 --
diff --git a/nanq/nanq.hs b/nanq/nanq.hs
--- a/nanq/nanq.hs
+++ b/nanq/nanq.hs
@@ -10,7 +10,6 @@
 import           Data.Kanji
 import qualified Data.Map.Strict as M
 import           Data.Maybe (catMaybes, mapMaybe)
-import           Data.Monoid ((<>))
 import qualified Data.Set as S
 import           Data.Text (Text)
 import qualified Data.Text as T
