diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Revision history for commutative-semigroups
 
+## 0.0.2.0 -- 2022-03-26
+
+- Add `instance Ord a => Commutative (Set a)`
+- Add `instance Commutative IntSet`
+
 ## 0.0.1.0 -- 2021-01-28
 
 - Add instance for `Maybe`.
diff --git a/commutative-semigroups.cabal b/commutative-semigroups.cabal
--- a/commutative-semigroups.cabal
+++ b/commutative-semigroups.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.4
 name:                commutative-semigroups
-version:             0.0.1.0
+version:             0.0.2.0
 synopsis:            Commutative semigroups
 description:
   A commutative semigroup is a semigroup where the order of arguments to mappend does not matter.
@@ -23,6 +23,7 @@
 library
   exposed-modules:     Data.Semigroup.Commutative
   -- other-modules:
-  build-depends:       base >= 4.6 && < 5
+  build-depends:       base >= 4.6 && < 4.17,
+                       containers >= 0.4 && < 0.7
   hs-source-dirs:      src
   default-language:    Haskell2010
diff --git a/src/Data/Semigroup/Commutative.hs b/src/Data/Semigroup/Commutative.hs
--- a/src/Data/Semigroup/Commutative.hs
+++ b/src/Data/Semigroup/Commutative.hs
@@ -5,9 +5,11 @@
 
 module Data.Semigroup.Commutative where
 
+import Data.IntSet (IntSet)
 import Data.Monoid
 import Data.Ord
 import Data.List (unfoldr)
+import Data.Set
 #if MIN_VERSION_base(4,7,0)
 import Data.Proxy
 #endif
@@ -58,6 +60,12 @@
 instance (Commutative a, Commutative b, Commutative c, Commutative d) => Commutative (a, b, c, d)
 
 instance (Commutative a, Commutative b, Commutative c, Commutative d, Commutative e) => Commutative (a, b, c, d, e)
+
+-- | @since 0.0.2.0
+instance Ord a => Commutative (Set a)
+
+-- | @since 0.0.2.0
+instance Commutative IntSet
 
 #if MIN_VERSION_base(4,11,0)
 instance Commutative a => Commutative (Down a)
