diff --git a/Data/Interned.hs b/Data/Interned.hs
--- a/Data/Interned.hs
+++ b/Data/Interned.hs
@@ -3,6 +3,7 @@
   , Uninternable(..)
   , mkCache
   , Cache
+  , cacheSize
   , Id(..)
   , intern
   ) where
diff --git a/Data/Interned/Internal.hs b/Data/Interned/Internal.hs
--- a/Data/Interned/Internal.hs
+++ b/Data/Interned/Internal.hs
@@ -9,6 +9,7 @@
   , mkCache
   , Cache(..)
   , CacheState(..)
+  , cacheSize
   , Id(..)
   , intern
   ) where
@@ -25,6 +26,11 @@
    !(HashMap (Description t) (Weak t))
 
 newtype Cache t = Cache { getCache :: MVar (CacheState t) }
+
+cacheSize :: Cache t -> IO Int
+cacheSize (Cache t) = do
+  CacheState i m <- readMVar t
+  return (HashMap.size m)
 
 mkCache :: Cache t
 mkCache = Cache $ unsafePerformIO $ newMVar $ CacheState 0 HashMap.empty
diff --git a/intern.cabal b/intern.cabal
--- a/intern.cabal
+++ b/intern.cabal
@@ -1,6 +1,6 @@
 name:          intern
 category:      Data, Data Structures
-version:       0.2.0
+version:       0.2.2
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
