diff --git a/license.txt b/license.txt
--- a/license.txt
+++ b/license.txt
@@ -1,4 +1,4 @@
-Copyright 2017 Chris Martin
+Copyright 2021 Chris Martin
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
diff --git a/text-replace.cabal b/text-replace.cabal
--- a/text-replace.cabal
+++ b/text-replace.cabal
@@ -1,15 +1,22 @@
+cabal-version: 2.2
+
 name: text-replace
-version: 0.0.0.6
+version: 0.0.0.8
 category: Text, Application
 synopsis: Simple text replacements from a list of search/replace pairs
 
-description: A library and a command-line application for simple string
-             replacements in text files. The search for strings to replace is
-             performed left-to-right, preferring longer matches to shorter
-             ones.
+description:
+    A library and a command-line application
+    for simple string replacements in text files.
+    .
+    The search for strings to replace is performed
+    left-to-right, preferring longer matches
+    to shorter ones.
 
-homepage:    https://github.com/chris-martin/text-replace
-bug-reports: https://github.com/chris-martin/text-replace/issues
+homepage:
+    https://github.com/chris-martin/text-replace
+bug-reports:
+    https://github.com/chris-martin/text-replace/issues
 
 author:     Chris Martin <ch.martin@gmail.com>
 maintainer: Chris Martin <ch.martin@gmail.com>
@@ -18,13 +25,10 @@
 license-file: license.txt
 
 build-type: Simple
-cabal-version: >= 1.10
 
-tested-with:
-    GHC == 8.2.2
-  , GHC == 8.4.3
-  , GHC == 8.6.1
-  , GHC == 8.8.1
+tested-with: GHC == 8.2.2, GHC == 8.4.3,
+             GHC == 8.6.1, GHC == 8.8.1,
+             GHC == 8.10.2, GHC == 9.0.1
 
 source-repository head
   type: git
@@ -37,15 +41,8 @@
 
   exposed-modules: Text.Replace
 
-  build-depends: base, containers
-
-  -- lower bounds
-  build-depends: base >= 4.9
-  build-depends: containers >= 0.5.7.1
-
-  -- pessimistic upper bounds
-  build-depends: base < 4.14
-  build-depends: containers < 0.7
+  build-depends: base ^>= 4.10 || ^>= 4.11 || ^>= 4.12 || ^>= 4.13 || ^>= 4.14 || ^>= 4.15
+  build-depends: containers ^>= 0.5.10.2 || ^>= 0.6
 
 executable text-replace
   default-language: Haskell2010
@@ -53,17 +50,11 @@
   main-is: text-replace.hs
   ghc-options: -Wall
 
-  build-depends: text-replace, base, parsec, optparse-applicative
-
-  -- lower bounds
-  build-depends: base >= 4.9
-  build-depends: parsec >= 3.1
-  build-depends: optparse-applicative >= 0.12.1.0
+  build-depends: text-replace
 
-  -- pessimistic upper bounds
-  build-depends: base < 4.14
-  build-depends: parsec < 3.2
-  build-depends: optparse-applicative <0.16
+  build-depends: base ^>= 4.10 || ^>= 4.11 || ^>= 4.12 || ^>= 4.13 || ^>= 4.14 || ^>= 4.15
+  build-depends: parsec ^>= 3.1.13
+  build-depends: optparse-applicative ^>= 0.14.2 || ^>= 0.15
 
 test-suite properties
   default-language: Haskell2010
@@ -72,16 +63,9 @@
   hs-source-dirs: test
   ghc-options: -Wall -threaded
 
-  build-depends: text-replace, base, hedgehog, neat-interpolation, text
-
-  -- lower bounds
-  build-depends: base >= 4.9
-  build-depends: hedgehog >= 0.5
-  build-depends: neat-interpolation >= 0.3
-  build-depends: text >= 1.2.2.2
+  build-depends: text-replace
 
-  -- pessimistic upper bounds
-  build-depends: base < 4.14
-  build-depends: hedgehog < 1.1
-  build-depends: neat-interpolation < 0.3.3
-  build-depends: text < 1.3
+  build-depends: base ^>= 4.10 || ^>= 4.11 || ^>= 4.12 || ^>= 4.13 || ^>= 4.14 || ^>= 4.15
+  build-depends: hedgehog ^>= 0.5.3 || ^>= 0.6 || ^>= 1.0
+  build-depends: neat-interpolation ^>= 0.3.2.1
+  build-depends: text ^>= 1.2.2.2
