diff --git a/library/Neovim/API/TH.hs b/library/Neovim/API/TH.hs
--- a/library/Neovim/API/TH.hs
+++ b/library/Neovim/API/TH.hs
@@ -40,7 +40,7 @@
 import Neovim.Plugin.Internal (ExportedFunctionality (..))
 import Neovim.RPC.FunctionCall
 
-import Language.Haskell.TH hiding (dataD, instanceD)
+import Language.Haskell.TH hiding (dataD, instanceD, conP)
 import TemplateHaskell.Compat.V0208
 
 import Control.Applicative
@@ -270,15 +270,15 @@
 customTypeInstance :: Name -> [(Name, Int64)] -> Q [Dec]
 customTypeInstance typeName nis = do
     let fromObjectClause :: Name -> Int64 -> Q Clause
-        fromObjectClause n i =
-            newName "bs" >>= \bs ->
-                clause
-                    [ conP
+        fromObjectClause n i = do
+            bs <- newName "bs"
+            let objectExtMatch = conP
                         (mkName "ObjectExt")
-                        [(litP . integerL . fromIntegral) i, varP bs]
-                    ]
-                    (normalB [|return $ $(conE n) $(varE bs)|])
-                    []
+                        [(LitP . integerL . fromIntegral) i, VarP bs]
+            clause
+                [ pure objectExtMatch ]
+                (normalB [|return $ $(conE n) $(varE bs)|])
+                []
         fromObjectErrorClause :: Q Clause
         fromObjectErrorClause = do
             o <- newName "o"
@@ -297,12 +297,12 @@
                 []
 
         toObjectClause :: Name -> Int64 -> Q Clause
-        toObjectClause n i =
-            newName "bs" >>= \bs ->
-                clause
-                    [conP n [varP bs]]
-                    (normalB [|ObjectExt $((litE . integerL . fromIntegral) i) $(varE bs)|])
-                    []
+        toObjectClause n i = do
+            bs <- newName "bs"
+            clause
+                [pure (conP n [VarP bs])]
+                (normalB [|ObjectExt $((litE . integerL . fromIntegral) i) $(varE bs)|])
+                []
 
     tNvimObject <- [t|NvimObject|]
     fToObject <- funD (mkName "toObject") $ map (uncurry toObjectClause) nis
@@ -380,15 +380,15 @@
  following five signatures, where you can replace 'String' with 'ByteString'
  or 'Text' if you wish:
 
- * 'CommandArguments' -> 'Neovim' r st ()
+ * 'CommandArguments' -> 'Neovim' env ()
 
- * 'CommandArguments' -> 'Maybe' 'String' -> 'Neovim' r st ()
+ * 'CommandArguments' -> 'Maybe' 'String' -> 'Neovim' env ()
 
- * 'CommandArguments' -> 'String' -> 'Neovim' r st ()
+ * 'CommandArguments' -> 'String' -> 'Neovim' env ()
 
- * 'CommandArguments' -> ['String'] -> 'Neovim' r st ()
+ * 'CommandArguments' -> ['String'] -> 'Neovim' env ()
 
- * 'CommandArguments' -> 'String' -> ['String'] -> 'Neovim' r st ()
+ * 'CommandArguments' -> 'String' -> ['String'] -> 'Neovim' env ()
 
  Example: @ $(command \"RememberThePrime\" 'someFunction) ['CmdBang'] @
 
@@ -565,13 +565,13 @@
     successfulEvaluation =
         newName "action" >>= \action ->
             match
-                (conP (mkName "Right") [varP action])
+                (pure (conP (mkName "Right") [VarP action]))
                 (normalB [|toObject <$> $(varE action)|])
                 []
     failedEvaluation :: Q Match
     failedEvaluation =
         newName "e" >>= \e ->
             match
-                (conP (mkName "Left") [varP e])
+                (pure (conP (mkName "Left") [VarP e]))
                 (normalB [|err ($(varE e) :: Doc AnsiStyle)|])
                 []
diff --git a/nvim-hs.cabal b/nvim-hs.cabal
--- a/nvim-hs.cabal
+++ b/nvim-hs.cabal
@@ -1,5 +1,5 @@
 name:                nvim-hs
-version:             2.2.0.1
+version:             2.2.0.2
 synopsis:            Haskell plugin backend for neovim
 description:
   This package provides a plugin provider for neovim. It allows you to write
@@ -124,7 +124,7 @@
                       , stm
                       , streaming-commons
                       , template-haskell
-                      , template-haskell-compat-v0208
+                      , template-haskell-compat-v0208 >= 0.1.9
                       , text
                       , time
                       , transformers
