diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,11 @@
 
 ## 0.2.1.0 -- 2024-02-06
 
+* Exported `mkThunkInfo`.
+* Test support of `ghc-9.10`.
+
+## 0.2.1.0 -- 2024-02-06
+
 * Support `wherefrom` with `GHC-9.2` or newer. (Teo Camarasu, [#49](https://github.com/input-output-hk/nothunks/pull/49))
 
 ## 0.2.0 -- 2024-01-27
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,20 @@
+# nothunks
+
+[![CI Tests](https://github.com/input-output-hk/nothunks/actions/workflows/ci.yml/badge.svg)](https://github.com/input-output-hk/nothunks/actions/workflows/ci.yml)
+
+
+Long lived application data typically should not contain any thunks. This
+library can be used to examine values for unexpected thunks, which can then be
+used in assertions. This can be invaluable in avoiding memory leaks, or tracking
+down existing ones.
+
+See my presentation
+[MuniHac 2020: Being lazy without being bloated](https://www.youtube.com/watch?v=7t6wt7ByBWg)
+for an overview, motivating the library and explaining how it is intended to be
+used and how it works internally.
+
+
+`nothunks` will try to get source information from info tables. For that one
+needs to use `GHC` `9.2` or newer and compile the code with
+`-finfo-table-map`.  More precise information will be available if
+`-fdistinct-constructor-tables` flag is used as well.  
diff --git a/nothunks.cabal b/nothunks.cabal
--- a/nothunks.cabal
+++ b/nothunks.cabal
@@ -1,6 +1,6 @@
 cabal-version:      3.0
 name:               nothunks
-version:            0.2.1.0
+version:            0.2.1.1
 synopsis:           Examine values for unexpected thunks
 description:        Long lived application data typically should not contain
                     any thunks. This library can be used to examine values for
@@ -15,8 +15,8 @@
 maintainer:         Marcin Szamotulski <coot@coot.me>
 copyright:          2018-2024 Input Output Global Inc (IOG)
 category:           Development
-extra-doc-files:    CHANGELOG.md
-tested-with:        GHC == {8.10, 9.0, 9.2, 9.4, 9.6, 9.8}
+extra-doc-files:    README.md CHANGELOG.md
+tested-with:        GHC == {8.10, 9.0, 9.2, 9.4, 9.6, 9.8, 9.10}
 
 source-repository head
   type:     git
diff --git a/src/NoThunks/Class.hs b/src/NoThunks/Class.hs
--- a/src/NoThunks/Class.hs
+++ b/src/NoThunks/Class.hs
@@ -18,6 +18,7 @@
     -- * Check a value for unexpected thunks
     NoThunks(..)
   , ThunkInfo(..)
+  , mkThunkInfo
   , Context
   , Info
   , unsafeNoThunks
@@ -139,7 +140,7 @@
   noThunks ctxt x = do
       isThunk <- checkIsThunk x
       let ctxt' = showTypeOf (Proxy @a) : ctxt
-      thunkInfo <- getThunkInfo ctxt' x
+      thunkInfo <- mkThunkInfo ctxt' x
       if isThunk
         then return $ Just thunkInfo
         else wNoThunks ctxt' x
@@ -229,9 +230,12 @@
 newtype ThunkInfo = ThunkInfo { thunkInfo  :: Either Context Info }
   deriving Show
 
-getThunkInfo :: Context -> a -> IO ThunkInfo
+-- | Construct `ThunkInfo` either from `Context` or information provided by
+-- `GHC` about `a` (see `whereFrom`).
+--
+mkThunkInfo :: Context -> a -> IO ThunkInfo
 #if MIN_VERSION_base(4,16,0)
-getThunkInfo ctxt a = ThunkInfo . maybe (Left ctxt) (Right . fmt) <$> whereFrom a
+mkThunkInfo ctxt a = ThunkInfo . maybe (Left ctxt) (Right . fmt) <$> whereFrom a
   where
     fmt :: InfoProv -> Info
     fmt InfoProv { ipSrcFile, ipSrcSpan,
@@ -239,7 +243,7 @@
            ipLabel ++ " :: " ++ ipTyDesc
         ++ " @ " ++ ipSrcFile ++ ":" ++ ipSrcSpan
 #else
-getThunkInfo ctxt _ = return (ThunkInfo (Left ctxt))
+mkThunkInfo ctxt _ = return (ThunkInfo (Left ctxt))
 #endif
 
 
@@ -388,7 +392,7 @@
 inspectHeap :: Context -> a -> IO (Maybe ThunkInfo)
 inspectHeap ctxt x = do
     containsThunks <- checkContainsThunks x
-    thunkInfo <- getThunkInfo ("..." : ctxt) x
+    thunkInfo <- mkThunkInfo ("..." : ctxt) x
     return $ if containsThunks
                then Just thunkInfo
                else Nothing
