diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -11,6 +11,7 @@
 [![Build status](https://github.com/schell/steeloverseer/actions/workflows/stack.yml/badge.svg)](https://github.com/schell/steeloverseer/actions/workflows/stack.yml)
 [![Build status](https://github.com/schell/steeloverseer/actions/workflows/haskell-ci.yml/badge.svg)](https://github.com/schell/steeloverseer/actions/workflows/haskell-ci.yml)
 
+Also see [`feedback` and other tools](https://github.com/NorfairKing/feedback?tab=readme-ov-file#comparison-with-other-tools).
 
 Installation
 ============
diff --git a/src/Sos/Rule.hs b/src/Sos/Rule.hs
--- a/src/Sos/Rule.hs
+++ b/src/Sos/Rule.hs
@@ -11,12 +11,11 @@
 
 import Control.Applicative
 import Control.Monad.Catch (MonadThrow, throwM)
-import Data.Aeson.Compat ((.:), FromJSON(..), Parser, Value(..))
-import Data.Aeson.Types (typeMismatch)
+import Data.Aeson ((.:), FromJSON(..), Value(..))
+import Data.Aeson.Types (Parser, typeMismatch)
 import Data.ByteString (ByteString)
 import Data.ByteString.Internal (c2w)
 import Data.Either
-import Data.Text (Text)
 import Text.Regex.TDFA
 import Text.Regex.TDFA.ByteString (compile)
 
@@ -118,7 +117,6 @@
     parseCommands :: Parser [RawTemplate]
     parseCommands = go ["command", "commands"]
 
-    go :: [Text] -> Parser [ByteString]
     go = fmap (map Text.encodeUtf8 . listify) . asum . map (o .:)
   parseJSON v = typeMismatch "command" v
 
diff --git a/steeloverseer.cabal b/steeloverseer.cabal
--- a/steeloverseer.cabal
+++ b/steeloverseer.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.35.0.
+-- This file has been generated from package.yaml by hpack version 0.38.1.
 --
 -- see: https://github.com/sol/hpack
 
 name:           steeloverseer
-version:        2.1.0.1
+version:        2.1.1.0
 synopsis:       A file watcher and development tool.
 description:    A command line tool that responds to filesystem events. Allows the user to automatically execute commands after files are added or updated. Watches files using regular expressions.
 category:       Development
@@ -55,19 +55,15 @@
       hspec-discover:hspec-discover
   build-depends:
       aeson >=0.8
-    , aeson-compat >=0.3.10
     , ansi-terminal >=0.6.2
     , async >=2.0
     , base >=4.0 && <5.0
     , bytestring >=0.10
-    , containers >=0.5
     , exceptions
     , fsnotify ==0.3.*
     , managed >=1.0.1
-    , mtl >=2.2
     , process ==1.6.*
     , regex-tdfa >=1.2
-    , semigroups >=0.16
     , stm >=2.4
     , streaming >=0.1.0 && <0.3
     , text >=1.2
@@ -94,8 +90,7 @@
   build-tool-depends:
       hspec-discover:hspec-discover
   build-depends:
-      aeson-compat >=0.3.10
-    , async >=2.0
+      async >=2.0
     , base >=4.0 && <5.0
     , bytestring >=0.10
     , directory >=1.2
@@ -103,19 +98,14 @@
     , filepath >=1.3
     , fsnotify ==0.3.*
     , managed >=1.0.1
-    , mtl >=2.2
     , optparse-applicative >=0.11
     , regex-tdfa >=1.2
-    , semigroups >=0.16
     , steeloverseer
     , stm >=2.4
     , streaming >=0.1.0 && <0.3
     , text >=1.2
     , yaml >=0.8
   default-language: Haskell2010
-  if os(darwin)
-    build-depends:
-        hfsevents >=0.1.3
 
 test-suite spec
   type: exitcode-stdio-1.0
@@ -140,17 +130,14 @@
   build-tool-depends:
       hspec-discover:hspec-discover
   build-depends:
-      aeson-compat >=0.3.10
-    , async >=2.0
+      async >=2.0
     , base >=4.0 && <5.0
     , bytestring >=0.10
     , exceptions
     , fsnotify ==0.3.*
     , hspec
     , managed >=1.0.1
-    , mtl >=2.2
     , regex-tdfa >=1.2
-    , semigroups >=0.16
     , steeloverseer
     , stm >=2.4
     , streaming >=0.1.0 && <0.3
