diff --git a/ghc-check.cabal b/ghc-check.cabal
--- a/ghc-check.cabal
+++ b/ghc-check.cabal
@@ -1,9 +1,9 @@
 cabal-version:       1.20
 build-type:          Simple
 name:                ghc-check
-version:             0.1.0.3
-synopsis:            Detect mismatches between compile-time and run-time versions of the ghc api
-description:         Detect mismatches between compile-time and run-time versions of the ghc api
+version:             0.2.0.0
+synopsis:            detect mismatches between compile-time and run-time versions of the ghc api
+description:         detect mismatches between compile-time and run-time versions of the ghc api
 bug-reports:         https://github.com/pepeiborra/ghc-check/issues
 license:             BSD3
 license-file:        LICENSE
diff --git a/src/GHC/Check.hs b/src/GHC/Check.hs
--- a/src/GHC/Check.hs
+++ b/src/GHC/Check.hs
@@ -3,7 +3,7 @@
 ( VersionCheck(..)
 , checkGhcVersion
 , compileTimeVersion
-, compileTimeVersionFromLibdir
+, ghcCompileTimeVersion
 , runTimeVersion
 ) where
 
@@ -11,12 +11,12 @@
 import           GHC
 import           GHC.Check.Internal
 
--- | Returns the compile-time version of the 'ghc' package.
+-- | Returns the compile-time version of the @ghc@ package.
 --   Uses 'guessLibdir' to find the GHC lib dir
-compileTimeVersion :: Version
-compileTimeVersion = $$(compileTimeVersionFromLibdir guessLibdir)
+ghcCompileTimeVersion :: Version
+ghcCompileTimeVersion = $$(compileTimeVersion guessLibdir "ghc")
 
--- | Returns the run-time version of the 'ghc' package by looking up in the package database
+-- | Returns the run-time version of the @ghc@ package in the package database
 runTimeVersion :: Ghc (Maybe Version)
 runTimeVersion = getGhcVersion
 
@@ -27,11 +27,11 @@
                }
     deriving (Eq, Show)
 
--- | Returns 'True' if the run-time version of the 'ghc' package matches the compile-time version
---   For using your own GHC libdir at compile time, inline this logic in your program
+-- | Checks if the run-time version of the @ghc@ package matches the compile-time version.
+--   To be able to specify a custom libdir, inline this logic in your program.
 checkGhcVersion :: Ghc VersionCheck
 checkGhcVersion = do
     v <- getGhcVersion
-    return $ if v == Just compileTimeVersion
+    return $ if v == Just ghcCompileTimeVersion
         then GHC.Check.Match
-        else Mismatch compileTimeVersion v
+        else Mismatch ghcCompileTimeVersion v
diff --git a/src/GHC/Check/Internal.hs b/src/GHC/Check/Internal.hs
--- a/src/GHC/Check/Internal.hs
+++ b/src/GHC/Check/Internal.hs
@@ -22,6 +22,8 @@
 guessLibdir :: IO FilePath
 guessLibdir = fromMaybe GHC.Paths.libdir <$> lookupEnv "NIX_GHC_LIBDIR"
 
+-- | @getPackageVersion p@ returns the version of package @p@ in
+--     the package database
 getPackageVersion :: String -> Ghc (Maybe Version)
 getPackageVersion packageName = runMaybeT $ do
     dflags <- Monad.lift getSessionDynFlags
@@ -29,24 +31,33 @@
     p <- MaybeT $ return $ lookupInstalledPackage dflags (componentIdToInstalledUnitId component)
     return $ packageVersion p
 
+-- | Returns the version of the @ghc@ package in the environment package database
 getGhcVersion :: Ghc (Maybe Version)
 getGhcVersion = getPackageVersion "ghc"
 
-getGhcVersionIO :: FilePath -> IO Version
-getGhcVersionIO libdir = runGhc (Just libdir) $ do
+-- | @getPackageVersionIO ghc-libdir p@ returns the version of package @p@
+--   in the default package database
+getPackageVersionIO :: FilePath -> String -> IO Version
+getPackageVersionIO libdir package = runGhc (Just libdir) $ do
+    -- initialize the Ghc session
+    -- there's probably a beteter way to do this.
     dflags <- getSessionDynFlags
     _ <- setSessionDynFlags dflags
-    ghcV <- getGhcVersion
-    case ghcV of
-        Just v  -> return v
-        Nothing -> error "Cannot get version of ghc package"
 
--- | Returns the compile-time version of the 'ghc' package given the GHC libdir
-compileTimeVersionFromLibdir :: IO FilePath -> TExpQ Version
-compileTimeVersionFromLibdir getLibdir = do
+    ver <- getPackageVersion package
+    case ver of
+        Just v  ->
+            return v
+        Nothing ->
+            error $ "Cannot find " <> package <> " in the package database at " <> libdir
+
+-- | @compileTimeVersion get-libdir p@ returns the version of package @p@ in
+--   the compile-time package database.
+compileTimeVersion :: IO FilePath -> String -> TExpQ Version
+compileTimeVersion getLibdir package = do
     ver <- runIO $ do
         libdir <- getLibdir
-        v <- getGhcVersionIO libdir
+        v <- getPackageVersionIO libdir package
         return (toList v)
     verLifted <- TH.lift (toList ver)
     [|| fromList $$(pure $ TExp verLifted) ||]
