diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,8 @@
+## 1.0.9.0
+
+* Added `filterMap` to `Data.Containers`
+  [#167](https://github.com/snoyberg/mono-traversable/pull/167)
+
 ## 1.0.8.1
 
 * Compat with gauge 0.1 and 0.2
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@
 
 In addition to this package, the
 [mono-traversable-instances](https://www.stackage.org/package/mono-traversable-instances)
-pacakge provides a number of orphan instances.
+package provides a number of orphan instances.
 
 
 Using Typeclasses
diff --git a/mono-traversable.cabal b/mono-traversable.cabal
--- a/mono-traversable.cabal
+++ b/mono-traversable.cabal
@@ -1,11 +1,13 @@
--- This file has been generated from package.yaml by hpack version 0.20.0.
+cabal-version: >= 1.10
+
+-- This file has been generated from package.yaml by hpack version 0.29.0.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 19fd8f1ebe28579b3a09d195725bc11e4c50c0f81206fdfce0513a912a546cf4
+-- hash: 6bcc1ed72e15c5adb841eb249f106e08f6823d8dfb67f86e62a140618a3b93c0
 
 name:           mono-traversable
-version:        1.0.8.1
+version:        1.0.9.0
 synopsis:       Type classes for mapping, folding, and traversing monomorphic containers
 description:    Please see the README at <https://www.stackage.org/package/mono-traversable>
 category:       Data
@@ -16,8 +18,6 @@
 license:        MIT
 license-file:   LICENSE
 build-type:     Simple
-cabal-version:  >= 1.10
-
 extra-source-files:
     ChangeLog.md
     README.md
@@ -31,7 +31,7 @@
       src
   ghc-options: -Wall
   build-depends:
-      base >=4.7 && <5
+      base >=4.9 && <5
     , bytestring >=0.9
     , containers >=0.4
     , hashable
diff --git a/src/Data/Containers.hs b/src/Data/Containers.hs
--- a/src/Data/Containers.hs
+++ b/src/Data/Containers.hs
@@ -562,6 +562,12 @@
       where
         go (k, v) = [(f k, v)]
 
+    -- | Filter values in a map.
+    --
+    -- @since 1.0.9.0
+    filterMap :: IsMap map => (MapValue map -> Bool) -> map -> map
+    filterMap p = mapFromList . filter (p . snd) . mapToList
+
 #if MIN_VERSION_containers(0, 5, 0)
 -- | This instance uses the functions from "Data.Map.Strict".
 #endif
diff --git a/src/Data/MonoTraversable.hs b/src/Data/MonoTraversable.hs
--- a/src/Data/MonoTraversable.hs
+++ b/src/Data/MonoTraversable.hs
@@ -942,6 +942,9 @@
 {-# INLINE minimumByMay #-}
 
 -- | Monomorphic containers that can be traversed from left to right.
+--
+-- NOTE: Due to limitations with the role system, GHC is yet unable to provide newtype-derivation of
+-- 'MonoTraversable'. See <https://stackoverflow.com/questions/49776924/newtype-deriving-issequence>.
 class (MonoFunctor mono, MonoFoldable mono) => MonoTraversable mono where
     -- | Map each element of a monomorphic container to an action,
     -- evaluate these actions from left to right, and
