diff --git a/funflow.cabal b/funflow.cabal
--- a/funflow.cabal
+++ b/funflow.cabal
@@ -1,5 +1,5 @@
 Name:                funflow
-Version:             1.3.1
+Version:             1.3.2
 Synopsis:            Workflows with arrows
 Description:
         An arrow with resumable computations and logging
@@ -94,7 +94,7 @@
    if os(linux)
      CPP-options: -DOS_Linux
      Other-modules: Control.Funflow.ContentStore.Notify.Linux
-     Build-depends: hinotify             == 0.3.9
+     Build-depends: hinotify             >= 0.3.9
    else
      if os(darwin) || os(freebsd)
        CPP-options: -DOS_BSD
diff --git a/src/Control/Funflow/ContentStore/Notify/Linux.hs b/src/Control/Funflow/ContentStore/Notify/Linux.hs
--- a/src/Control/Funflow/ContentStore/Notify/Linux.hs
+++ b/src/Control/Funflow/ContentStore/Notify/Linux.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP                 #-}
 {-# LANGUAGE LambdaCase          #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 
@@ -14,6 +15,9 @@
   ) where
 
 import           Control.Exception.Safe (catch)
+#if MIN_VERSION_hinotify(0,3,10)
+import qualified Data.ByteString.Char8 as BS
+#endif
 import           System.INotify
 
 type Notifier = INotify
@@ -27,13 +31,18 @@
 type Watch = WatchDescriptor
 
 addDirWatch :: Notifier -> FilePath -> IO () -> IO Watch
-addDirWatch inotify dir f = addWatch inotify mask dir $ \case
+addDirWatch inotify dir f = addWatch inotify mask dir' $ \case
   Attributes True Nothing -> f
   MovedSelf True -> f
   DeletedSelf -> f
   _ -> return ()
   where
     mask = [Attrib, MoveSelf, DeleteSelf, OnlyDir]
+#if MIN_VERSION_hinotify(0,3,10)
+    dir' = BS.pack dir
+#else
+    dir' = dir
+#endif
 
 removeDirWatch :: Watch -> IO ()
 removeDirWatch w =
diff --git a/src/Control/Funflow/External.hs b/src/Control/Funflow/External.hs
--- a/src/Control/Funflow/External.hs
+++ b/src/Control/Funflow/External.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP                        #-}
 {-# LANGUAGE DeriveGeneric              #-}
 {-# LANGUAGE FlexibleInstances          #-}
 {-# LANGUAGE GADTs                      #-}
@@ -13,7 +14,9 @@
 import qualified Control.Funflow.ContentStore    as CS
 import           Control.Lens.TH
 import           Data.Aeson                      (FromJSON, ToJSON)
+#if __GLASGOW_HASKELL__ < 804
 import           Data.Semigroup
+#endif
 import           Data.Store                      (Store)
 import           Data.String                     (IsString (..))
 import qualified Data.Text                       as T
diff --git a/src/Control/Funflow/External/Coordinator.hs b/src/Control/Funflow/External/Coordinator.hs
--- a/src/Control/Funflow/External/Coordinator.hs
+++ b/src/Control/Funflow/External/Coordinator.hs
@@ -1,4 +1,5 @@
 {-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# LANGUAGE CPP                        #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE LambdaCase                 #-}
 {-# LANGUAGE OverloadedStrings          #-}
@@ -29,7 +30,9 @@
 import           Path
 import           System.Clock                    (TimeSpec)
 
+#if !MIN_VERSION_store(0,5,0)
 instance Store TimeSpec
+#endif
 
 -- | Information about an executor capable of running tasks. Currently this
 --   is just a newtype wrapper around hostname.
diff --git a/test/Funflow/ContentStore.hs b/test/Funflow/ContentStore.hs
--- a/test/Funflow/ContentStore.hs
+++ b/test/Funflow/ContentStore.hs
@@ -1,7 +1,8 @@
-{-# LANGUAGE LambdaCase       #-}
+{-# OPTIONS_GHC -fno-warn-unused-do-bind #-}
+{-# LANGUAGE LambdaCase        #-}
 {-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE QuasiQuotes      #-}
-{-# LANGUAGE TypeApplications #-}
+{-# LANGUAGE QuasiQuotes       #-}
+{-# LANGUAGE TypeApplications  #-}
 
 module Funflow.ContentStore
   ( tests
