diff --git a/ClassyPrelude/HashSet.hs b/ClassyPrelude/HashSet.hs
--- a/ClassyPrelude/HashSet.hs
+++ b/ClassyPrelude/HashSet.hs
@@ -33,3 +33,6 @@
 
 instance CanFoldFunc (Set a) a accum where
     foldFunc = Set.foldl'
+
+instance (Eq a, Hashable a) => CanMapM_Func (HashSet a) a where
+    mapM_Func f = Prelude.mapM_ f . unpack
diff --git a/ClassyPrelude/Set.hs b/ClassyPrelude/Set.hs
--- a/ClassyPrelude/Set.hs
+++ b/ClassyPrelude/Set.hs
@@ -30,3 +30,6 @@
 
 instance CanFoldFunc (Set a) a accum where
     foldFunc = Set.foldl'
+
+instance Prelude.Ord a => CanMapM_Func (Set a) a where
+    mapM_Func f = Prelude.mapM_ f . unpack
diff --git a/classy-prelude.cabal b/classy-prelude.cabal
--- a/classy-prelude.cabal
+++ b/classy-prelude.cabal
@@ -1,5 +1,5 @@
 name:                classy-prelude
-version:             0.4.1
+version:             0.4.2
 synopsis:            A typeclass-based Prelude.
 description:         Focuses on using common typeclasses when possible, and creating new ones to avoid name clashing. Exposes many recommended datastructures (Map, ByteString, etc) directly without requiring long import lists and qualified modules.
 homepage:            https://github.com/snoyberg/classy-prelude
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -146,7 +146,7 @@
 mapMProps dummy = do
     let f :: Int -> Writer [Int] Int
         f x = tell [x] >> return x
-    prop "mapM_ f c == mapM_ f (toList c)" $ \c ->
+    prop "mapM f c == mapM f (toList c)" $ \c ->
         runWriter (mapM f (c `asTypeOf` dummy)) ==
             let (x, y) = runWriter (mapM f (toList c))
              in (pack x, y)
@@ -282,6 +282,8 @@
     describe "mapM_" $ do
         describe "list" $ mapM_Props (undefined :: [Int])
         describe "Data.Vector" $ mapM_Props (undefined :: Vector Int)
+        describe "Set" $ mapM_Props (undefined :: Set Int)
+        describe "HashSet" $ mapM_Props (undefined :: HashSet Int)
     describe "fold" $ do
         let f = flip (:)
         describe "list" $ foldProps (undefined :: [Int]) f []
