diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@
 
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 
+## 0.3.0.1 - 2022-03-21
+
+### Removed
+
+ - Clean up inline-c generated exports
+
 ## 0.3.0.0 - 2022-03-15
 
 ### Added
diff --git a/hercules-ci-cnix-store.cabal b/hercules-ci-cnix-store.cabal
--- a/hercules-ci-cnix-store.cabal
+++ b/hercules-ci-cnix-store.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.4
 
 name:           hercules-ci-cnix-store
-version:        0.3.0.0
+version:        0.3.0.1
 synopsis:       Haskell bindings for Nix's libstore
 category:       Nix
 homepage:       https://docs.hercules-ci.com
diff --git a/src/Hercules/CNix.hs b/src/Hercules/CNix.hs
--- a/src/Hercules/CNix.hs
+++ b/src/Hercules/CNix.hs
@@ -3,7 +3,16 @@
 {-# LANGUAGE TemplateHaskell #-}
 
 module Hercules.CNix
-  ( module Hercules.CNix,
+  ( init,
+    setTalkative,
+    setDebug,
+    setGlobalOption,
+    setOption,
+    logInfo,
+    appendString,
+    nixVersion,
+
+    -- * Re-exports
     module Hercules.CNix.Store,
   )
 where
diff --git a/src/Hercules/CNix/Exception.hs b/src/Hercules/CNix/Exception.hs
--- a/src/Hercules/CNix/Exception.hs
+++ b/src/Hercules/CNix/Exception.hs
@@ -1,7 +1,12 @@
 {-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE TemplateHaskell #-}
 
-module Hercules.CNix.Exception where
+module Hercules.CNix.Exception
+  ( handleExceptions,
+    handleExceptions',
+    handleExceptionPtr,
+  )
+where
 
 import Hercules.CNix.Store.Context (context)
 import qualified Language.C.Inline.Cpp as C
@@ -15,12 +20,21 @@
 C.include "<nix/shared.hh>"
 C.include "<nix/globals.hh>"
 
+-- | Log C++ exceptions and call 'exitWith' the way Nix would exit when an
+-- exception occurs.
 handleExceptions :: IO a -> IO a
 handleExceptions io = do
   progName <- System.Environment.getProgName
   handleExceptions' exitWith (toS progName) io
 
-handleExceptions' :: (ExitCode -> IO a) -> Text -> IO a -> IO a
+-- | Log C++ exceptions and call 'exitWith' the way Nix would exit.
+handleExceptions' ::
+  -- | What to do when Nix would want to exit with 'ExitCode'
+  (ExitCode -> IO a) ->
+  -- | Program name (command name)
+  Text ->
+  IO a ->
+  IO a
 handleExceptions' handleExit programName io =
   let select (C.CppStdException eptr _msg _t) = Just eptr
       select _ = Nothing
@@ -31,6 +45,7 @@
       doHandle = handleExit . convertExit <=< handleExceptionPtr (encodeUtf8 programName)
    in handleJust select doHandle io
 
+-- | Low-level wrapper around @nix::handleExceptions(rethrow_exception(e))@.
 handleExceptionPtr :: ByteString -> C.CppExceptionPtr -> IO C.CInt
 handleExceptionPtr programName eptr =
   [C.throwBlock| int {
diff --git a/src/Hercules/CNix/Settings.hs b/src/Hercules/CNix/Settings.hs
--- a/src/Hercules/CNix/Settings.hs
+++ b/src/Hercules/CNix/Settings.hs
@@ -3,7 +3,16 @@
 {-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE TemplateHaskell #-}
 
-module Hercules.CNix.Settings where
+module Hercules.CNix.Settings
+  ( getExtraPlatforms,
+    getSystem,
+    getSystemFeatures,
+    getSubstituters,
+    getTrustedPublicKeys,
+    getNarinfoCacheNegativeTtl,
+    getNetrcFile,
+  )
+where
 
 import Data.ByteString.Unsafe (unsafePackMallocCString)
 import qualified Data.Set as S
diff --git a/src/Hercules/CNix/Std/String/Context.hs b/src/Hercules/CNix/Std/String/Context.hs
--- a/src/Hercules/CNix/Std/String/Context.hs
+++ b/src/Hercules/CNix/Std/String/Context.hs
@@ -1,7 +1,11 @@
 {-# LANGUAGE QuasiQuotes #-}
-{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE TemplateHaskellQuotes #-}
 
-module Hercules.CNix.Std.String.Context where
+module Hercules.CNix.Std.String.Context
+  ( CStdString,
+    stdStringCtx,
+  )
+where
 
 import qualified Data.Map as M
 import qualified Language.C.Inline as C
diff --git a/src/Hercules/CNix/Std/String/Instances.hs b/src/Hercules/CNix/Std/String/Instances.hs
--- a/src/Hercules/CNix/Std/String/Instances.hs
+++ b/src/Hercules/CNix/Std/String/Instances.hs
@@ -4,7 +4,7 @@
 
 -- | Define instances for C++ types in the Context module that can't be in that
 -- module because of TH staging restrictions.
-module Hercules.CNix.Std.String.Instances where
+module Hercules.CNix.Std.String.Instances () where
 
 import Data.Semigroup (Semigroup ((<>)))
 import Hercules.CNix.Std.Set
diff --git a/src/Hercules/CNix/Store/Context.hs b/src/Hercules/CNix/Store/Context.hs
--- a/src/Hercules/CNix/Store/Context.hs
+++ b/src/Hercules/CNix/Store/Context.hs
@@ -1,6 +1,6 @@
 {-# LANGUAGE EmptyDataDecls #-}
 {-# LANGUAGE QuasiQuotes #-}
-{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE TemplateHaskellQuotes #-}
 
 module Hercules.CNix.Store.Context where
 
diff --git a/src/Hercules/CNix/Store/Instances.hs b/src/Hercules/CNix/Store/Instances.hs
--- a/src/Hercules/CNix/Store/Instances.hs
+++ b/src/Hercules/CNix/Store/Instances.hs
@@ -4,7 +4,7 @@
 
 -- | Define instances for C++ types in the Context module that can't be in that
 -- module because of TH staging restrictions.
-module Hercules.CNix.Store.Instances where
+module Hercules.CNix.Store.Instances () where
 
 import Data.Data (Proxy (Proxy))
 import Data.Function (($))
diff --git a/src/Hercules/CNix/Verbosity.hs b/src/Hercules/CNix/Verbosity.hs
--- a/src/Hercules/CNix/Verbosity.hs
+++ b/src/Hercules/CNix/Verbosity.hs
@@ -1,7 +1,14 @@
 {-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE TemplateHaskell #-}
 
-module Hercules.CNix.Verbosity where
+module Hercules.CNix.Verbosity
+  ( Verbosity (..),
+    setVerbosity,
+    getVerbosity,
+    setShowTrace,
+    getShowTrace,
+  )
+where
 
 import Foreign (fromBool, toBool)
 import Hercules.CNix.Store.Context (context)
