diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Revision history for reflex-fsnotify
 
+## 0.2.1.0
+
+* Add `watchDirs` to watch a list of directories
+* Generalize `wrapWatch` a little to make `watchDirs` possible
+
 ## 0.2.0.0
 
 * Deprecate `watchDirectory`
diff --git a/reflex-fsnotify.cabal b/reflex-fsnotify.cabal
--- a/reflex-fsnotify.cabal
+++ b/reflex-fsnotify.cabal
@@ -1,6 +1,6 @@
 cabal-version: >=1.10
 name: reflex-fsnotify
-version: 0.2.0.0
+version: 0.2.1.0
 synopsis: reflex-frp interface for watching files
 description: Receive FRP events whenever files change.
 bug-reports: https://github.com/reflex-frp/reflex-fsnotify/issues
diff --git a/src/Reflex/FSNotify.hs b/src/Reflex/FSNotify.hs
--- a/src/Reflex/FSNotify.hs
+++ b/src/Reflex/FSNotify.hs
@@ -7,10 +7,12 @@
 module Reflex.FSNotify
   ( watchDirectory
   , watchDir
+  , watchDirs
   , watchTree
   , wrapWatch
   , listDirectories
   , watchDirectoryTree
+  , FSEvent
   ) where
 
 import Control.Concurrent
@@ -38,14 +40,14 @@
 
 wrapWatch
   :: (Reflex t, TriggerEvent t m, PerformEvent t m, MonadIO (Performable m))
-  => (FS.WatchManager -> FilePath -> FS.Action -> IO a)
+  => (FS.WatchManager -> pathinfo -> FS.Action -> IO a)
   -> FS.WatchConfig
-  -> Event t FilePath
+  -> Event t pathinfo
   -> m (Event t FSEvent)
 wrapWatch f cfg path =
   performEventAsync $ ffor path $ \p cb -> liftIO $ void $ forkIO $
     FS.withManagerConf cfg $ \mgr -> do
-      _ <- f mgr p cb -- FS.watchTree mgr p (const True) cb
+      _ <- f mgr p cb
       forever $ threadDelay 1000000
 
 watchDir
@@ -55,6 +57,15 @@
   -> FS.ActionPredicate
   -> m (Event t FSEvent)
 watchDir cfg path evFilter = wrapWatch (\mgr p -> FS.watchDir mgr p evFilter) cfg path
+
+watchDirs
+  :: (Reflex t, TriggerEvent t m, PerformEvent t m, MonadIO (Performable m))
+  => FS.WatchConfig
+  -> Event t [FilePath]
+  -> FS.ActionPredicate
+  -> m (Event t FSEvent)
+watchDirs cfg path evFilter = wrapWatch (\mgr ps cb -> forM_ ps $ \p ->
+  FS.watchDir mgr p evFilter cb) cfg path
 
 watchTree
   :: (Reflex t, TriggerEvent t m, PerformEvent t m, MonadIO (Performable m))
