diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+1.5.20
+
+* Build against `doctest-0.17`
+* Only depend on `semigroups` for GHC < 8.0
+
 1.5.19
 
 * Add pattern synonyms for `Size`
diff --git a/src/Turtle/Prelude.hs b/src/Turtle/Prelude.hs
--- a/src/Turtle/Prelude.hs
+++ b/src/Turtle/Prelude.hs
@@ -896,7 +896,11 @@
 arguments = liftIO (fmap (map pack) getArgs)
 
 #if __GLASGOW_HASKELL__ >= 710
--- | Set or modify an environment variable
+{-| Set or modify an environment variable
+
+    Note: This will change the current environment for all of your program's
+    threads since this modifies the global state of the process
+-}
 export :: MonadIO io => Text -> Text -> io ()
 export key val = liftIO (setEnv (unpack key) (unpack val))
 
@@ -919,7 +923,11 @@
   where
     toTexts (key, val) = (pack key, pack val)
 
--- | Change the current directory
+{-| Change the current directory
+
+    Note: This will change the current directory for all of your program's
+    threads since this modifies the global state of the process
+-}
 cd :: MonadIO io => FilePath -> io ()
 cd path = liftIO (Filesystem.setWorkingDirectory path)
 
diff --git a/turtle.cabal b/turtle.cabal
--- a/turtle.cabal
+++ b/turtle.cabal
@@ -1,5 +1,5 @@
 Name: turtle
-Version: 1.5.19
+Version: 1.5.20
 Cabal-Version: >=1.10
 Build-Type: Simple
 License: BSD3
@@ -60,7 +60,6 @@
         hostname                           < 1.1 ,
         managed              >= 1.0.3   && < 1.1 ,
         process              >= 1.0.1.1 && < 1.7 ,
-        semigroups           >= 0.5.0   && < 0.20,
         system-filepath      >= 0.3.1   && < 0.5 ,
         system-fileio        >= 0.2.1   && < 0.4 ,
         stm                                < 2.6 ,
@@ -77,7 +76,8 @@
     else
         Build-Depends: unix  >= 2.5.1.0 && < 2.8
     if !impl(ghc >= 8.0)
-        Build-Depends: fail  >= 4.9.0.0 && < 4.10
+        Build-Depends: fail        >= 4.9.0.0 && < 4.10,
+                       semigroups  >= 0.5.0   && < 0.20
     Exposed-Modules:
         Turtle,
         Turtle.Bytes,
@@ -101,7 +101,7 @@
     Default-Language: Haskell2010
     Build-Depends:
         base    >= 4   && < 5   ,
-        doctest >= 0.7 && < 0.17
+        doctest >= 0.7 && < 0.18
 
 test-suite regression-broken-pipe
     Type: exitcode-stdio-1.0
@@ -131,10 +131,11 @@
     Default-Language: Haskell2010
     Build-Depends:
         base   >= 4 && < 5,
-        fail,
         temporary,
         system-filepath >= 0.4,
         turtle
+    if !impl(ghc >= 8.0)
+        Build-Depends: fail
 
 benchmark bench
     Type: exitcode-stdio-1.0
