diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.4.14
+
+* Add a Semigroup instance [#20 ](https://github.com/fpco/haskell-filesystem/pull/20)
+
 ## 0.4.13.3
 
 * Documentation fix for: `PLATFORM_PATH_FORMAT` promotes platform dependent code [#12](https://github.com/fpco/haskell-filesystem/issues/12)
diff --git a/lib/Filesystem/Path.hs b/lib/Filesystem/Path.hs
--- a/lib/Filesystem/Path.hs
+++ b/lib/Filesystem/Path.hs
@@ -60,10 +60,14 @@
 
 import           Data.List (foldl')
 import           Data.Maybe (isJust, isNothing)
+import qualified Data.Semigroup as Sem
 import qualified Data.Monoid as M
 import qualified Data.Text as T
 
 import           Filesystem.Path.Internal
+
+instance Sem.Semigroup FilePath where
+  (<>) = append
 
 instance M.Monoid FilePath where
 	mempty = empty
diff --git a/system-filepath.cabal b/system-filepath.cabal
--- a/system-filepath.cabal
+++ b/system-filepath.cabal
@@ -1,5 +1,5 @@
 name: system-filepath
-version: 0.4.13.4
+version: 0.4.14
 synopsis: High-level, byte-based file and directory path manipulations (deprecated)
 description: Please see: https://plus.google.com/+MichaelSnoyman/posts/Ft5hnPqpgEx
 license: MIT
@@ -28,6 +28,9 @@
     , bytestring >= 0.9
     , deepseq >= 1.1 && < 1.5
     , text >= 0.11.0.6
+  if !impl(ghc >= 8.0)
+    build-depends:
+      semigroups >= 0.11 && < 0.19
 
   if os(windows)
     cpp-options: -DCABAL_OS_WINDOWS
