diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -18,7 +18,6 @@
 import Control.Monad.Managed
 import Data.ByteString (ByteString)
 import Data.List.NonEmpty (NonEmpty(..))
-import Data.Monoid
 import Data.Yaml (decodeFileEither, prettyPrintParseException)
 import Options.Applicative
 import Streaming
@@ -254,10 +253,10 @@
       stream :: Stream (Of FSNotify.Event) Managed a
       stream = FSNotify.watchTree config target (const True)
 
-  S.for stream (\case
-    FSNotify.Added    path _ -> S.yield (FileAdded    (go cwd path))
-    FSNotify.Modified path _ -> S.yield (FileModified (go cwd path))
-    FSNotify.Removed  _    _ -> pure ())
+  S.for stream $ \case
+    FSNotify.Added    path _ _ -> S.yield (FileAdded    (go cwd path))
+    FSNotify.Modified path _ _ -> S.yield (FileModified (go cwd path))
+    _                          -> pure ()
  where
   go :: FilePath -> FilePath -> ByteString
   go cwd path = packBS (makeRelative cwd path)
diff --git a/src/Sos/Job.hs b/src/Sos/Job.hs
--- a/src/Sos/Job.hs
+++ b/src/Sos/Job.hs
@@ -13,7 +13,6 @@
 import Control.Exception
 import Data.Function (on)
 import Data.List.NonEmpty (NonEmpty)
-import Data.Monoid
 import System.Exit
 import System.IO
 import System.IO.Error (tryIOError)
diff --git a/src/Sos/Template.hs b/src/Sos/Template.hs
--- a/src/Sos/Template.hs
+++ b/src/Sos/Template.hs
@@ -12,7 +12,6 @@
 import Control.Applicative
 import Control.Monad.Catch (MonadThrow, throwM)
 import Data.ByteString (ByteString)
-import Data.Monoid
 import Text.ParserCombinators.ReadP
 
 import qualified Data.Text.Encoding as Text
diff --git a/src/Sos/Utils.hs b/src/Sos/Utils.hs
--- a/src/Sos/Utils.hs
+++ b/src/Sos/Utils.hs
@@ -1,7 +1,6 @@
 module Sos.Utils where
 
 import Control.Applicative
-import Data.Monoid
 import Data.ByteString     (ByteString)
 import System.Console.ANSI
 
diff --git a/steeloverseer.cabal b/steeloverseer.cabal
--- a/steeloverseer.cabal
+++ b/steeloverseer.cabal
@@ -1,124 +1,120 @@
--- This file has been generated from package.yaml by hpack version 0.20.0.
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.30.0.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: e0468a343c9d01e573c139ad9fedc221aecdc503cfb35a1e36094f14f2b4e93c
+-- hash: 8d42197bfca3bf4b40cbdc28e5f5253c3f6a54a083bf03d417f21619817f802e
 
 name:           steeloverseer
-version:        2.0.2.0
-cabal-version:  >= 1.10
-build-type:     Simple
-license:        BSD3
-license-file:   LICENSE
-maintainer:     schell@takt.com
-stability:      stable
-homepage:       https://github.com/schell/steeloverseer#readme
-bug-reports:    https://github.com/schell/steeloverseer/issues
+version:        2.1.0.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
+stability:      stable
+homepage:       https://github.com/schell/steeloverseer#readme
+bug-reports:    https://github.com/schell/steeloverseer/issues
 author:         Schell Scivally,
                 Mitchell Rosen
-
+maintainer:     schell@takt.com
+license:        BSD3
+license-file:   LICENSE
+build-type:     Simple
 extra-source-files:
-      README.md
+    README.md
 
 source-repository head
-    type: git
-    location: https://github.com/schell/steeloverseer
+  type: git
+  location: https://github.com/schell/steeloverseer
 
 library
-    exposed-modules:
-          Control.Concurrent.STM.TQueue.Extra
-          Sos.Exception
-          Sos.FileEvent
-          Sos.Job
-          Sos.Rule
-          Sos.Template
-          Sos.Utils
-          System.FSNotify.Streaming
-    other-modules:
-          Paths_steeloverseer
-    default-language: Haskell2010
-    build-depends:
-          aeson >=0.8
-        , ansi-terminal >=0.6.2
-        , async >=2.0
-        , base >=4.0 && <5.0
-        , bytestring >=0.10
-        , containers >=0.5
-        , exceptions
-        , fsnotify >=0.2
-        , managed >=1.0.1
-        , mtl >=2.2
-        , process >=1.6 && <1.7
-        , regex-tdfa >=1.2
-        , semigroups >=0.16
-        , stm >=2.4
-        , streaming >=0.1.0 && <0.3
-        , text >=1.2
-        , unix
-        , yaml >=0.8
-    hs-source-dirs:
-          src
-    default-extensions: BangPatterns DeriveDataTypeable DeriveFunctor FlexibleContexts InstanceSigs LambdaCase OverloadedStrings RecordWildCards ScopedTypeVariables ViewPatterns
-    ghc-options: -Wall
+  exposed-modules:
+      Control.Concurrent.STM.TQueue.Extra
+      Sos.Exception
+      Sos.FileEvent
+      Sos.Job
+      Sos.Rule
+      Sos.Template
+      Sos.Utils
+      System.FSNotify.Streaming
+  hs-source-dirs:
+      src
+  default-extensions: BangPatterns DeriveDataTypeable DeriveFunctor FlexibleContexts InstanceSigs LambdaCase OverloadedStrings RecordWildCards ScopedTypeVariables ViewPatterns
+  ghc-options: -Wall
+  build-depends:
+      aeson >=0.8
+    , 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 && <1.7
+    , regex-tdfa >=1.2
+    , semigroups >=0.16
+    , stm >=2.4
+    , streaming >=0.1.0 && <0.3
+    , text >=1.2
+    , unix
+    , yaml >=0.8
+  default-language: Haskell2010
 
 executable sos
-    main-is: Main.hs
+  main-is: Main.hs
+  hs-source-dirs:
+      app
+  default-extensions: BangPatterns DeriveDataTypeable DeriveFunctor FlexibleContexts InstanceSigs LambdaCase OverloadedStrings RecordWildCards ScopedTypeVariables ViewPatterns
+  ghc-options: -Wall -threaded
+  build-depends:
+      async >=2.0
+    , base >=4.0 && <5.0
+    , bytestring >=0.10
+    , directory >=1.2
+    , exceptions
+    , 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
+  if os(darwin)
     build-depends:
-          async >=2.0
-        , base >=4.0 && <5.0
-        , bytestring >=0.10
-        , directory >=1.2
-        , exceptions
-        , filepath >=1.3
-        , fsnotify >=0.2
-        , 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
-    if os(darwin)
-        build-depends:
-              hfsevents >=0.1.3
-    other-modules:
-          Paths_steeloverseer
-    default-language: Haskell2010
-    hs-source-dirs:
-          app
-    default-extensions: BangPatterns DeriveDataTypeable DeriveFunctor FlexibleContexts InstanceSigs LambdaCase OverloadedStrings RecordWildCards ScopedTypeVariables ViewPatterns
-    ghc-options: -Wall -threaded
+        hfsevents >=0.1.3
+  default-language: Haskell2010
 
 test-suite spec
-    type: exitcode-stdio-1.0
-    main-is: Spec.hs
-    hs-source-dirs:
-          test
-    default-extensions: BangPatterns DeriveDataTypeable DeriveFunctor FlexibleContexts InstanceSigs LambdaCase OverloadedStrings RecordWildCards ScopedTypeVariables ViewPatterns
-    ghc-options: -Wall
-    build-depends:
-          async >=2.0
-        , base >=4.0 && <5.0
-        , bytestring >=0.10
-        , exceptions
-        , fsnotify >=0.2
-        , 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
-        , text >=1.2
-        , yaml >=0.8
-    other-modules:
-          Sos.TemplateSpec
-          Paths_steeloverseer
-    default-language: Haskell2010
+  type: exitcode-stdio-1.0
+  main-is: Spec.hs
+  other-modules:
+      Sos.TemplateSpec
+      Paths_steeloverseer
+  hs-source-dirs:
+      test
+  default-extensions: BangPatterns DeriveDataTypeable DeriveFunctor FlexibleContexts InstanceSigs LambdaCase OverloadedStrings RecordWildCards ScopedTypeVariables ViewPatterns
+  ghc-options: -Wall
+  build-depends:
+      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
+    , text >=1.2
+    , yaml >=0.8
+  default-language: Haskell2010
