diff --git a/library/STMContainers/Bimap.hs b/library/STMContainers/Bimap.hs
--- a/library/STMContainers/Bimap.hs
+++ b/library/STMContainers/Bimap.hs
@@ -9,6 +9,7 @@
   insert2,
   delete1,
   delete2,
+  deleteAll,
   lookup1,
   lookup2,
   focus1,
@@ -112,6 +113,15 @@
 {-# INLINABLE delete2 #-}
 delete2 :: (Association a b) => b -> Bimap a b -> STM ()
 delete2 k (Bimap m1 m2) = (inline delete1) k (Bimap m2 m1)
+
+-- |
+-- Delete all the associations.
+{-# INLINE deleteAll #-}
+deleteAll :: Bimap a b -> STM ()
+deleteAll (Bimap m1 m2) =
+  do
+    Map.deleteAll m1
+    Map.deleteAll m2
 
 -- |
 -- Focus on a right value by a left value with a strategy.
diff --git a/library/STMContainers/HAMT.hs b/library/STMContainers/HAMT.hs
--- a/library/STMContainers/HAMT.hs
+++ b/library/STMContainers/HAMT.hs
@@ -36,3 +36,7 @@
 {-# INLINE stream #-}
 stream :: HAMT e -> ListT STM e
 stream = Nodes.stream 0
+
+{-# INLINE deleteAll #-}
+deleteAll :: HAMT e -> STM ()
+deleteAll = Nodes.deleteAll
diff --git a/library/STMContainers/HAMT/Nodes.hs b/library/STMContainers/HAMT/Nodes.hs
--- a/library/STMContainers/HAMT/Nodes.hs
+++ b/library/STMContainers/HAMT/Nodes.hs
@@ -173,3 +173,7 @@
             Nodes nodes -> size nodes
             Leaf _ _ -> pure 1
             Leaves _ x -> pure (SizedArray.size x)
+
+deleteAll :: Nodes e -> STM ()
+deleteAll tvar = 
+  writeTVar tvar WordArray.empty
diff --git a/library/STMContainers/Map.hs b/library/STMContainers/Map.hs
--- a/library/STMContainers/Map.hs
+++ b/library/STMContainers/Map.hs
@@ -6,6 +6,7 @@
   newIO,
   insert,
   delete,
+  deleteAll,
   lookup,
   focus,
   null,
@@ -54,6 +55,12 @@
 {-# INLINE delete #-}
 delete :: (Key k) => k -> Map k v -> STM ()
 delete k (Map h) = HAMT.focus Focus.deleteM k h
+
+-- |
+-- Delete all the associations.
+{-# INLINE deleteAll #-}
+deleteAll :: Map k v -> STM ()
+deleteAll (Map h) = HAMT.deleteAll h
 
 -- |
 -- Focus on an item by a key with a strategy.
diff --git a/library/STMContainers/Multimap.hs b/library/STMContainers/Multimap.hs
--- a/library/STMContainers/Multimap.hs
+++ b/library/STMContainers/Multimap.hs
@@ -9,6 +9,7 @@
   insert,
   delete,
   deleteByKey,
+  deleteAll,
   lookup,
   lookupByKey,
   focus,
@@ -100,6 +101,12 @@
 deleteByKey :: Key k => k -> Multimap k v -> STM ()
 deleteByKey k (Multimap m) =
   Map.delete k m
+
+-- |
+-- Delete all the associations.
+{-# INLINE deleteAll #-}
+deleteAll :: Multimap k v -> STM ()
+deleteAll (Multimap h) = Map.deleteAll h
 
 -- |
 -- Focus on an item with a strategy by a value and a key.
diff --git a/library/STMContainers/Set.hs b/library/STMContainers/Set.hs
--- a/library/STMContainers/Set.hs
+++ b/library/STMContainers/Set.hs
@@ -6,6 +6,7 @@
   newIO,
   insert,
   delete,
+  deleteAll,
   lookup,
   focus,
   null,
@@ -50,6 +51,12 @@
 {-# INLINE delete #-}
 delete :: (Element e) => e -> Set e -> STM ()
 delete e = HAMT.focus Focus.deleteM e . hamt
+
+-- |
+-- Delete all the associations.
+{-# INLINE deleteAll #-}
+deleteAll :: Set e -> STM ()
+deleteAll = HAMT.deleteAll . hamt
 
 -- |
 -- Lookup an element.
diff --git a/stm-containers.cabal b/stm-containers.cabal
--- a/stm-containers.cabal
+++ b/stm-containers.cabal
@@ -1,7 +1,7 @@
 name:
   stm-containers
 version:
-  0.2.13
+  0.2.14
 synopsis:
   Containers for STM
 description:
