diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,7 +3,12 @@
 `fused-effects-th` uses [PVP Versioning][1].
 The changelog is available [on GitHub][2].
 
-## 0.0.0.0
+## 0.1.0.1
+
+* Fix a bug where explicit kind signatures around a monad type variable
+  were causing incorrect name generation. Thanks to @AlistairB for the report.
+
+## 0.1.0.0
 
 * Initially created.
 
diff --git a/fused-effects-th.cabal b/fused-effects-th.cabal
--- a/fused-effects-th.cabal
+++ b/fused-effects-th.cabal
@@ -1,8 +1,8 @@
 cabal-version:       2.4
 name:                fused-effects-th
-version:             0.1.0.0
+version:             0.1.0.1
 synopsis:            Template Haskell helpers for fused-effects.
-description:         Template Haskell helpers for fused-effects.
+description:         This package provides Template Haskell splices that wrap the smart constructors needed for declaring new effects when using the fused-effects effect system.
 homepage:            https://github.com/patrickt/fused-effects-th
 bug-reports:         https://github.com/patrickt/fused-effects-th/issues
 license:             BSD-3-Clause
diff --git a/src/Control/Effect/TH.hs b/src/Control/Effect/TH.hs
--- a/src/Control/Effect/TH.hs
+++ b/src/Control/Effect/TH.hs
@@ -124,4 +124,4 @@
       invocation = foldl' appT (conT typeName) (fmap (varT . getTyVar) rest)
       hasConstraint = [t|Has $(parensT invocation) $(varT (mkName "sig")) $(monadName)|]
       folded = foldr (\a b -> arrowT `appT` pure a `appT` b) (monadName `appT` pure returnType) ctorArgs
-   in TH.sigD functionName (TH.forallT (extraTyVars ++ [sigVar]) (TH.cxt [hasConstraint]) folded)
+   in TH.sigD functionName (TH.forallT (rest ++ [monadTypeVar, sigVar]) (TH.cxt [hasConstraint]) folded)
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -22,10 +22,13 @@
 import System.IO
 import Test.Tasty
 import Test.Tasty.HUnit
+import Data.Kind (Type)
 
+data Go (m :: Type -> Type) k where
+  App :: String -> Go m ()
+
+makeSmartConstructors ''Go
 makeSmartConstructors ''State
-makeSmartConstructors ''Reader
-makeSmartConstructors ''Writer
 
 -- Need to ensure that if a constructor introduces a new type variable,
 -- that it is introduced in the corresponding invocation. The question is
