diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,120 @@
+## [0.12.2.1] - 2019-10-04
+### Added
+ - Support for GHC 8.8.1.
+
+## [0.12.2] - 2018-04-02
+### Added
+ - Support for GHC 8.4.1.
+### Fixed
+- #76 C-style comments in cunit declarations
+
+## [0.12.1] - 2017-07-25
+### Fixed
+- #75 ObjC needs blocks and GCC extension
+
+## [0.12] - 2017-05-05
+### Fixed
+- Test with GHC 8.2.1.
+- Bump various bounds.
+- #71 Bad char literal output
+- #69 The antiquoter for double and float does not handle infinity correctly	
+
+## [0.11.7.3] - 2017-03-10
+### Fixed
+- Bump other `mainland-pretty` upper bound.
+
+## [0.11.7.2] - 2017-03-05
+### Fixed
+- Bump `mainland-pretty` upper bound.
+
+## [0.11.7.1] - 2016-12-05
+### Fixed
+- Bump `HUnit` upper bound.
+
+## [0.11.7] - 2016-10-03
+### Fixed
+- Fix compatibility with `haskell-src-meta` 0.7.0.
+
+## [0.11.6.3] - 2016-08-30
+### Fixed
+- Fix alignment of pretty-printed comments.
+
+## [0.11.6.2] - 2016-05-18
+### Fixed
+- #68 Cannot create block consisting of a single statements antiquote
+
+## [0.11.6.1] - 2016-05-10
+### Added
+- Bump `syb` upper bound for GHC 8.0.1 compatibility.
+
+## [0.11.6] - 2016-04-12
+### Added
+- Add support for type qualifier escapes.
+
+## [0.11.5.1] - 2016-04-07
+### Fixed
+- Try to be -Wparentheses clean.
+- Fix pretty-pretty of dangling else.
+- Add missing test modules to tarball.
+
+## [0.11.5] - 2016-03-30
+### Added
+- Added ToConst and ToExp instances for Int/Word types (Emil Axelsson)
+- Expression and statement raw string escapes (Kosyrev Serge)
+- Partial support for C++11 lambda expressions in CUDA code (Michał Wawrzyniec Urbańczyk)
+
+### Fixed
+- #64 Negated negative constants do not correctly pretty-print.
+- #59 No obvious way to generate macro code -- not even through $esc:(... :: String)
+- #51 Objective-C anti-quotations for interface decls broken
+
+## [0.11.4] - 2015-12-22
+### Added
+- Conditionally use the lightweight haskell-exp-parser instead of haskell-src-meta.
+
+### Fixed
+- #57 language-c-quote-0.11.3 does not compile with alex 3.1.5
+
+## [0.11.3] - 2015-10-14
+### Added
+- `IsString` instances for `Id` and `StringLit` data types.
+
+### Fixed
+- #55 Comments at the top of a block before a declaration.
+
+## [0.11.2.1] - 2015-10-06
+### Added
+- Type qualifiers are now allowed before an antiquoted type.
+
+## [0.11.2] - 2015-09-29
+### Added
+- `qqPat` and `qqExp` are now exposed.
+
+### Changed
+- Bump upper bound on `syb`.
+- Providing a starting position is now optional when parsing.
+
+## [0.11.1] - 2015-09-29
+### Added
+- Automatically-generated `Relocatable` instances added for C abstract syntax types.
+
+### Changed
+- `Located` instances are also now automatically generated.
+
+[0.12.1]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.12...language-c-quote-0.12.1
+[0.12]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.7.2...language-c-quote-0.12
+[0.11.7.3]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.7.2...language-c-quote-0.11.7.3
+[0.11.7.2]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.7.1...language-c-quote-0.11.7.2
+[0.11.7.1]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.7...language-c-quote-0.11.7.1
+[0.11.7]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.6.3...language-c-quote-0.11.7
+[0.11.6.3]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.6.2...language-c-quote-0.11.6.3
+[0.11.6.2]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.6.1...language-c-quote-0.11.6.2
+[0.11.6.1]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.6...language-c-quote-0.11.6.1
+[0.11.6]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.5.1...language-c-quote-0.11.6
+[0.11.5.1]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.5...language-c-quote-0.11.5.1
+[0.11.5]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.4...language-c-quote-0.11.5
+[0.11.4]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.3...language-c-quote-0.11.4
+[0.11.3]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.2...language-c-quote-0.11.3
+[0.11.2.1]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.2...language-c-quote-0.11.2.1
+[0.11.2]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.1...language-c-quote-0.11.2
+[0.11.1]: https://github.com/mainland/language-c-quote/compare/language-c-quote-0.11.0.1...language-c-quote-0.11.1
diff --git a/Language/C/Parser/Monad.hs b/Language/C/Parser/Monad.hs
--- a/Language/C/Parser/Monad.hs
+++ b/Language/C/Parser/Monad.hs
@@ -167,6 +167,9 @@
 
     return a = P $ \s -> Right (a, s)
 
+#if MIN_VERSION_base(4,13,0)
+instance MonadFail P where
+#endif
     fail msg = do
         inp <- getInput
         throw $ ParserException (alexLoc inp inp) (text msg)
diff --git a/Language/C/Quote/Base.hs b/Language/C/Quote/Base.hs
--- a/Language/C/Quote/Base.hs
+++ b/Language/C/Quote/Base.hs
@@ -34,7 +34,7 @@
 #else
 import Language.Haskell.ParseExp (parseExp,parsePat)
 #endif
-import Language.Haskell.TH
+import Language.Haskell.TH as TH
 #if MIN_VERSION_template_haskell(2,7,0)
 import Language.Haskell.TH.Quote (QuasiQuoter(..),
                                   dataToQa,
@@ -393,7 +393,7 @@
 qqExpListE :: [C.Exp] -> Maybe (Q Exp)
 qqExpListE [] = Just [|[]|]
 qqExpListE (C.AntiArgs v loc : exps) =
-    Just [|map (uncurry toExp) ($(antiVarE v) `zip` repeat $(qqLocE loc)) ++
+    Just [|[toExp v $(qqLocE loc) | v <- $(antiVarE v)] ++
            $(dataToExpQ qqExp exps)|]
 qqExpListE (exp : exps) =
     Just [|$(dataToExpQ qqExp exp) : $(dataToExpQ qqExp exps)|]
@@ -449,14 +449,14 @@
 qqObjCPropAttrListE :: [C.ObjCPropAttr] -> Maybe (Q Exp)
 qqObjCPropAttrListE [] = Just [|[]|]
 qqObjCPropAttrListE (C.AntiObjCAttrs pa _:attrelems) =
-    Just $ [|$(antiVarE pa) ++ $(dataToExpQ qqExp attrelems)|]
+    Just [|$(antiVarE pa) ++ $(dataToExpQ qqExp attrelems)|]
 qqObjCPropAttrListE (pattr : pattrs) =
     Just [|$(dataToExpQ qqExp pattr) : $(dataToExpQ qqExp pattrs)|]
 
 qqObjCDictsE :: [C.ObjCDictElem] -> Maybe (Q Exp)
 qqObjCDictsE [] = Just [|[]|]
 qqObjCDictsE (C.AntiObjCDictElems e _:elems) =
-    Just $ [|$(antiVarE e) ++ $(dataToExpQ qqExp elems)|]
+    Just [|$(antiVarE e) ++ $(dataToExpQ qqExp elems)|]
 qqObjCDictsE (elem : elems) =
     Just [|$(dataToExpQ qqExp elem) : $(dataToExpQ qqExp elems)|]
 
@@ -467,7 +467,7 @@
 qqObjCParamsE :: [C.ObjCParam] -> Maybe (Q Exp)
 qqObjCParamsE [] = Just [|[]|]
 qqObjCParamsE (C.AntiObjCParams p _: props) =
-    Just $ [|$(antiVarE p) ++ $(dataToExpQ qqExp props)|]
+    Just [|$(antiVarE p) ++ $(dataToExpQ qqExp props)|]
 qqObjCParamsE (param : params) =
     Just [|$(dataToExpQ qqExp param) : $(dataToExpQ qqExp params)|]
 
@@ -486,7 +486,7 @@
 qqObjCArgsE :: [C.ObjCArg] -> Maybe (Q Exp)
 qqObjCArgsE [] = Just [|[]|]
 qqObjCArgsE (C.AntiObjCArgs a _: args) =
-    Just $ [|$(antiVarE a) ++ $(dataToExpQ qqExp args)|]
+    Just [|$(antiVarE a) ++ $(dataToExpQ qqExp args)|]
 qqObjCArgsE (arg : args) =
     Just [|$(dataToExpQ qqExp arg) : $(dataToExpQ qqExp args)|]
 
@@ -536,7 +536,7 @@
 qqStringP s = Just $ litP $ stringL s
 
 qqLocP :: Data.Loc.Loc -> Maybe (Q Pat)
-qqLocP _ = Just $ wildP
+qqLocP _ = Just wildP
 
 qqIdP :: C.Id -> Maybe (Q Pat)
 qqIdP (C.AntiId v _) = Just $ conP (mkName "C.Id") [antiVarP v, wildP]
@@ -544,12 +544,12 @@
 
 qqDeclSpecP :: C.DeclSpec -> Maybe (Q Pat)
 qqDeclSpecP (C.AntiDeclSpec v _) = Just $ antiVarP v
-qqDeclSpecP (C.AntiTypeDeclSpec {}) =
+qqDeclSpecP C.AntiTypeDeclSpec{} =
     error "Illegal antiquoted type in pattern"
 qqDeclSpecP _ = Nothing
 
 qqDeclP :: C.Decl -> Maybe (Q Pat)
-qqDeclP (C.AntiTypeDecl {}) =
+qqDeclP C.AntiTypeDecl{} =
     error "Illegal antiquoted type in pattern"
 qqDeclP _ = Nothing
 
@@ -560,7 +560,7 @@
 qqTypeQualListP :: [C.TypeQual] -> Maybe (Q Pat)
 qqTypeQualListP [] = Just $ listP []
 qqTypeQualListP [C.AntiTypeQuals v _] = Just $ antiVarP v
-qqTypeQualListP (C.AntiTypeQuals {} : _ : _) =
+qqTypeQualListP (C.AntiTypeQuals{} : _ : _) =
     error "Antiquoted list of type qualifiers must be last item in quoted list"
 qqTypeQualListP (arg : args) =
     Just $ conP (mkName ":") [dataToPatQ qqPat arg, dataToPatQ qqPat args]
@@ -576,7 +576,7 @@
 qqInitializerListP :: [C.Initializer] -> Maybe (Q Pat)
 qqInitializerListP [] = Just $ listP []
 qqInitializerListP [C.AntiInits v _] = Just $ antiVarP v
-qqInitializerListP (C.AntiInits {} : _ : _) =
+qqInitializerListP (C.AntiInits{} : _ : _) =
     error "Antiquoted list of initializers must be last item in quoted list"
 qqInitializerListP (ini : inis) =
     Just $ conP (mkName ":") [dataToPatQ qqPat ini,  dataToPatQ qqPat inis]
@@ -588,7 +588,7 @@
 qqInitGroupListP :: [C.InitGroup] -> Maybe (Q Pat)
 qqInitGroupListP [] = Just $ listP []
 qqInitGroupListP [C.AntiDecls v _] = Just $ antiVarP v
-qqInitGroupListP (C.AntiDecls {} : _ : _) =
+qqInitGroupListP (C.AntiDecls{} : _ : _) =
     error "Antiquoted list of initialization groups must be last item in quoted list"
 qqInitGroupListP (ini : inis) =
     Just $ conP (mkName ":") [dataToPatQ qqPat ini,  dataToPatQ qqPat inis]
@@ -600,7 +600,7 @@
 qqFieldGroupListP :: [C.FieldGroup] -> Maybe (Q Pat)
 qqFieldGroupListP [] = Just $ listP []
 qqFieldGroupListP [C.AntiSdecls v _] = Just $ antiVarP v
-qqFieldGroupListP (C.AntiSdecls {} : _ : _) =
+qqFieldGroupListP (C.AntiSdecls{} : _ : _) =
     error "Antiquoted list of struct/union fields must be last item in quoted list"
 qqFieldGroupListP (ini : inis) =
     Just $ conP (mkName ":") [dataToPatQ qqPat ini,  dataToPatQ qqPat inis]
@@ -612,7 +612,7 @@
 qqCEnumListP :: [C.CEnum] -> Maybe (Q Pat)
 qqCEnumListP [] = Just $ listP []
 qqCEnumListP [C.AntiEnums v _] = Just $ antiVarP v
-qqCEnumListP (C.AntiEnums {} : _ : _) =
+qqCEnumListP (C.AntiEnums{} : _ : _) =
     error "Antiquoted list of enumerations must be last item in quoted list"
 qqCEnumListP (ini : inis) =
     Just $ conP (mkName ":") [dataToPatQ qqPat ini,  dataToPatQ qqPat inis]
@@ -624,7 +624,7 @@
 qqParamListP :: [C.Param] -> Maybe (Q Pat)
 qqParamListP [] = Just $ listP []
 qqParamListP [C.AntiParams v _] = Just $ antiVarP v
-qqParamListP (C.AntiParams {} : _ : _) =
+qqParamListP (C.AntiParams{} : _ : _) =
     error "Antiquoted list of parameters must be last item in quoted list"
 qqParamListP (arg : args) =
     Just $ conP (mkName ":") [dataToPatQ qqPat arg,  dataToPatQ qqPat args]
@@ -638,7 +638,7 @@
 qqDefinitionListP :: [C.Definition] -> Maybe (Q Pat)
 qqDefinitionListP [] = Just $ listP []
 qqDefinitionListP [C.AntiEdecls v _] = Just $ antiVarP v
-qqDefinitionListP (C.AntiEdecls {} : _ : _) =
+qqDefinitionListP (C.AntiEdecls{} : _ : _) =
     error "Antiquoted list of definitions must be last item in quoted list"
 qqDefinitionListP (arg : args) =
     Just $ conP (mkName ":") [dataToPatQ qqPat arg,  dataToPatQ qqPat args]
@@ -647,23 +647,23 @@
 qqConstP = go
   where
     go (C.AntiInt v _) =
-        Just $ (con "C.IntConst") [wildP, signed, antiVarP v, wildP]
+        Just $ con "C.IntConst" [wildP, signed, antiVarP v, wildP]
     go (C.AntiUInt v _) =
-        Just $ (con "C.IntConst") [wildP, unsigned, antiVarP v, wildP]
+        Just $ con "C.IntConst" [wildP, unsigned, antiVarP v, wildP]
     go (C.AntiLInt v _) =
-        Just $ (con "C.LongIntConst") [wildP, signed, antiVarP v, wildP]
+        Just $ con "C.LongIntConst" [wildP, signed, antiVarP v, wildP]
     go (C.AntiULInt v _) =
-        Just $ (con "C.LongIntConst") [wildP, unsigned, antiVarP v, wildP]
+        Just $ con "C.LongIntConst" [wildP, unsigned, antiVarP v, wildP]
     go (C.AntiFloat v _) =
-        Just $ (con "C.FloatConst") [wildP, antiVarP v, wildP]
+        Just $ con "C.FloatConst" [wildP, antiVarP v, wildP]
     go (C.AntiDouble v _) =
-        Just $ (con "C.DoubleConst") [wildP, antiVarP v, wildP]
+        Just $ con "C.DoubleConst" [wildP, antiVarP v, wildP]
     go (C.AntiLongDouble v _) =
-        Just $ (con "C.LongDoubleConst") [wildP, antiVarP v, wildP]
+        Just $ con "C.LongDoubleConst" [wildP, antiVarP v, wildP]
     go (C.AntiChar v _) =
-        Just $ (con "C.CharConst") [wildP, antiVarP v, wildP]
+        Just $ con "C.CharConst" [wildP, antiVarP v, wildP]
     go (C.AntiString v _) =
-        Just $ (con "C.StringConst") [wildP, antiVarP v, wildP]
+        Just $ con "C.StringConst" [wildP, antiVarP v, wildP]
     go _ =
         Nothing
 
@@ -680,7 +680,7 @@
 qqExpListP :: [C.Exp] -> Maybe (Q Pat)
 qqExpListP [] = Just $ listP []
 qqExpListP [C.AntiArgs v _] = Just $ antiVarP v
-qqExpListP (C.AntiArgs {} : _ : _) =
+qqExpListP (C.AntiArgs{} : _ : _) =
     error "Antiquoted list of arguments must be last item in quoted list"
 qqExpListP (arg : args) =
     Just $ conP (mkName ":") [dataToPatQ qqPat arg,  dataToPatQ qqPat args]
@@ -693,7 +693,7 @@
 qqStmListP :: [C.Stm] -> Maybe (Q Pat)
 qqStmListP [] = Just $ listP []
 qqStmListP [C.AntiStms v _] = Just $ antiVarP v
-qqStmListP (C.AntiStms {} : _ : _) =
+qqStmListP (C.AntiStms{} : _ : _) =
     error "Antiquoted list of statements must be last item in quoted list"
 qqStmListP (arg : args) =
     Just $ conP (mkName ":") [dataToPatQ qqPat arg,  dataToPatQ qqPat args]
@@ -704,12 +704,12 @@
 
 qqBlockItemListP :: [C.BlockItem] -> Maybe (Q Pat)
 qqBlockItemListP [] = Just $ listP []
-qqBlockItemListP (C.BlockDecl (C.AntiDecls {}) : _) =
+qqBlockItemListP (C.BlockDecl C.AntiDecls{} : _) =
     error "Antiquoted list of declarations cannot appear in block"
-qqBlockItemListP (C.BlockStm (C.AntiStms {}) : _) =
+qqBlockItemListP (C.BlockStm C.AntiStms{} : _) =
     error "Antiquoted list of statements cannot appear in block"
 qqBlockItemListP [C.AntiBlockItems v _] = Just $ antiVarP v
-qqBlockItemListP (C.AntiBlockItems {} : _ : _) =
+qqBlockItemListP (C.AntiBlockItems{} : _ : _) =
     error "Antiquoted list of block items must be last item in quoted list"
 qqBlockItemListP (arg : args) =
     Just $ conP (mkName ":") [dataToPatQ qqPat arg,  dataToPatQ qqPat args]
@@ -753,11 +753,9 @@
       Left err -> fail (show err)
       Right x  -> return x
   where
-    locToPos :: Language.Haskell.TH.Loc -> Pos
-    locToPos loc = Pos (loc_filename loc)
-                       ((fst . loc_start) loc)
-                       ((snd . loc_start) loc)
-                       0
+    locToPos :: TH.Loc -> Pos
+    locToPos TH.Loc {loc_filename = filename, loc_start = (line, col)} =
+        Pos filename line col 0
 
 quasiquote :: Data a
            => [C.Extensions]
@@ -767,8 +765,8 @@
 quasiquote exts typenames p =
     QuasiQuoter { quoteExp  = parse exts typenames p >=> dataToExpQ qqExp
                 , quotePat  = parse exts typenames p >=> dataToPatQ qqPat
-                , quoteType = fail "C type quasiquoter undefined"
-                , quoteDec  = fail "C declaration quasiquoter undefined"
+                , quoteType = error "C type quasiquoter undefined"
+                , quoteDec  = error "C declaration quasiquoter undefined"
                 }
 
 #if !MIN_VERSION_template_haskell(2,7,0)
diff --git a/language-c-quote.cabal b/language-c-quote.cabal
--- a/language-c-quote.cabal
+++ b/language-c-quote.cabal
@@ -1,12 +1,12 @@
 name:          language-c-quote
-version:       0.12.2
+version:       0.12.2.1
 cabal-version: >= 1.10
 license:       BSD3
 license-file:  LICENSE
 copyright:     (c) 2006-2011 Harvard University
                (c) 2011-2013 Geoffrey Mainland
                (c) 2013 Manuel M. T. Chakravarty
-               (c) 2013-2018 Drexel University
+               (c) 2013-2019 Drexel University
 author:        Geoffrey Mainland <mainland@drexel.edu>
 maintainer:    Geoffrey Mainland <mainland@drexel.edu>
 stability:     alpha
@@ -14,7 +14,8 @@
 bug-reports:   https://github.com/mainland/language-c-quote/issues
 category:      Language
 synopsis:      C/CUDA/OpenCL/Objective-C quasiquoting library.
-tested-with:   GHC==7.4.2, GHC==7.6.3, GHC==7.8.3, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.1
+tested-with:   GHC==7.4.2, GHC==7.6.3, GHC==7.8.3, GHC==7.10.3, GHC==8.0.2,
+               GHC==8.2.2, GHC==8.4.3, GHC==8.6.5, GHC==8.8.1
 
 description:
   This package provides a general parser for the C language, including most GCC
@@ -25,6 +26,7 @@
 
 extra-source-files:
   Language/C/Syntax-instances.hs
+  CHANGELOG.md
 
 flag full-haskell-antiquotes
   description: Support full Haskell expressions/patterns in antiquotes. This
@@ -40,7 +42,7 @@
     array                  >= 0.2   && < 0.6,
     base                   >= 4.5   && < 5,
     bytestring             >= 0.9   && < 0.11,
-    containers             >= 0.4   && < 0.6,
+    containers             >= 0.4   && < 0.7,
     exception-mtl          >= 0.3   && < 0.5,
     exception-transformers >= 0.3   && < 0.5,
     filepath               >= 1.2   && < 1.5,
diff --git a/tests/unit/CUDA.hs b/tests/unit/CUDA.hs
--- a/tests/unit/CUDA.hs
+++ b/tests/unit/CUDA.hs
@@ -10,17 +10,28 @@
 import Language.C.Syntax
 import Data.Loc (noLoc)
 
+mkDeclarator :: [Param] -> Bool -> LambdaDeclarator
 mkDeclarator params mutability = LambdaDeclarator (Params params False noLoc) mutability Nothing noLoc
 
 mkIntroducer :: [CaptureListEntry] -> LambdaIntroducer
 mkIntroducer mode = (LambdaIntroducer mode noLoc)
 
+emptyLambda :: Exp
 emptyLambda = lambdaByCapture []
+
+lambdaByCapture :: [CaptureListEntry] -> Exp
 lambdaByCapture captureMode = Lambda (mkIntroducer captureMode) Nothing [] noLoc
+
+lambdaByCaptureBody :: [CaptureListEntry] -> [BlockItem] -> Exp
 lambdaByCaptureBody captureMode statements = Lambda (mkIntroducer captureMode) Nothing statements noLoc
+
+lambdaByCaptureParams :: [CaptureListEntry] -> [Param] -> Exp
 lambdaByCaptureParams captureMode params = Lambda (mkIntroducer captureMode) (Just $ mkDeclarator params False) [] noLoc
 
+lambdaByParams :: [Param] -> Exp
 lambdaByParams params = Lambda (mkIntroducer []) (Just $ mkDeclarator params False) [] noLoc
+
+mutableLambdaByParams :: [Param] -> Exp
 mutableLambdaByParams params = Lambda (mkIntroducer []) (Just $ mkDeclarator params True) [] noLoc
 
 cudaTests :: Test
@@ -33,11 +44,11 @@
               , [cexp|[] {}|] @?= lambdaByCapture []
               , [cexp|[] {}|] @?= emptyLambda
               , [cexp|[] () {}|] @?= lambdaByParams []
-              , [cexp|[] (int i) {}|] @?= lambdaByParams [param_int_i] 
-              , [cexp|[] (int i, double j) {}|] @?= lambdaByParams [param_int_i, param_double_h] 
-              , [cexp|[] ($param:param_int_i) {}|] @?= lambdaByParams [param_int_i] 
-              , [cexp|[] (int i) mutable {}|] @?= mutableLambdaByParams [param_int_i]  
-              , [cexp|[&] (int i) {}|] @?= lambdaByCaptureParams [DefaultByReference] [param_int_i] 
+              , [cexp|[] (int i) {}|] @?= lambdaByParams [param_int_i]
+              , [cexp|[] (int i, double j) {}|] @?= lambdaByParams [param_int_i, param_double_h]
+              , [cexp|[] ($param:param_int_i) {}|] @?= lambdaByParams [param_int_i]
+              , [cexp|[] (int i) mutable {}|] @?= mutableLambdaByParams [param_int_i]
+              , [cexp|[&] (int i) {}|] @?= lambdaByCaptureParams [DefaultByReference] [param_int_i]
               , [cexp|[&] { $item:item_return_7 } |] @?= lambdaCapturingByRefAndReturning7
               , [cexp|[&] { return $exp:exp_7; } |] @?= lambdaCapturingByRefAndReturning7
               , [cexp|[]{}()|] @?= FnCall emptyLambda [] noLoc
diff --git a/tests/unit/Main.hs b/tests/unit/Main.hs
--- a/tests/unit/Main.hs
+++ b/tests/unit/Main.hs
@@ -17,7 +17,6 @@
 import Numeric (showHex)
 import Objc (objcTests, objcRegressionTests)
 import CUDA (cudaTests)
-import System.Exit (exitFailure, exitSuccess)
 import Text.PrettyPrint.Mainland
 import Text.PrettyPrint.Mainland.Class
 
@@ -87,11 +86,12 @@
         [cexp|$int:one + $uint:one + $lint:one + $ulint:one + $llint:one + $ullint:one|]
           @?= [cexp|1 + 1U + 1L + 1UL + 1LL + 1ULL|]
       where
+        one :: Integer
         one = 1
 
     test_hexconst :: Assertion
     test_hexconst =
-        [cexp|$const:(hexconst 10)|]
+        [cexp|$const:(hexconst (10 :: Integer))|]
           @?= C.Const (C.IntConst "0xa" C.Signed 10 noLoc) noLoc
       where
         hexconst :: Integral a => a -> C.Const
@@ -102,7 +102,7 @@
 
     test_hexconst_u :: Assertion
     test_hexconst_u =
-        [cexp|$const:(hexconst_u 10)|]
+        [cexp|$const:(hexconst_u (10 :: Integer))|]
           @?= C.Const (C.IntConst "0xa" C.Unsigned 10 noLoc) noLoc
       where
         hexconst_u :: Integral a => a -> C.Const
@@ -224,7 +224,7 @@
         [cunit|$func:f|]
           @?= [cunit|int add(int x) { return x + 10; }|]
       where
-        f = add 10
+        f = add (10 :: Integer)
         add n = [cfun|int add(int x) { return x + $int:n; } |]
 
     test_args :: Assertion
@@ -292,6 +292,7 @@
         [cfun|int add(int x) { $stms:stms return x + 1; }|]
           @?= [cfun|int add(int x) { a = 1; b = 2; return x + 1; }|]
       where
+        one :: Integer
         one = 1
         stm1 = [cstm|a = $int:one;|]
         stm2 = [cstm|b = 2;|]
diff --git a/tests/unit/MainCPP.hs b/tests/unit/MainCPP.hs
--- a/tests/unit/MainCPP.hs
+++ b/tests/unit/MainCPP.hs
@@ -7,18 +7,20 @@
 
 module MainCPP where
 
+import Test.Framework (Test)
 import Test.Framework.Providers.HUnit
 import Test.HUnit (Assertion, (@?=))
 
 import Language.C.Quote.C
 
+testCase_test_int_hsexp :: [Test]
 testCase_test_int_hsexp =
 #ifdef FULL_HASKELL_ANTIQUOTES
     [testCase "unsigned long antiquote of Haskell expression" test_int_hsexp]
   where
     test_int_hsexp :: Assertion
     test_int_hsexp =
-        [cexp|$ulint:(13 - 2*5)|] @?= [cexp|3UL|]
+        [cexp|$ulint:(13 - 2*5 :: Integer)|] @?= [cexp|3UL|]
 #else
     []
 #endif
