diff --git a/hasql-th.cabal b/hasql-th.cabal
--- a/hasql-th.cabal
+++ b/hasql-th.cabal
@@ -1,7 +1,8 @@
-name: hasql-th
-version: 0.4.0.18
-category: Hasql, Database, PostgreSQL, Template Haskell
-synopsis: Template Haskell utilities for Hasql
+cabal-version: 3.0
+name:          hasql-th
+version:       0.4.0.19
+category:      Hasql, Database, PostgreSQL, Template Haskell
+synopsis:      Template Haskell utilities for Hasql
 description:
   Extension-library for Hasql,
   bringing compile-time syntax checking,
@@ -9,26 +10,63 @@
   other TemplateHaskell-based utilities.
   .
   For details please see <https://github.com/nikita-volkov/hasql-th the readme>.
-homepage: https://github.com/nikita-volkov/hasql-th
-bug-reports: https://github.com/nikita-volkov/hasql-th/issues
-author: Nikita Volkov <nikita.y.volkov@mail.ru>
-maintainer: Nikita Volkov <nikita.y.volkov@mail.ru>
-copyright: (c) 2015, Nikita Volkov
-license: MIT
-license-file: LICENSE
-build-type: Simple
-cabal-version: >=1.10
 
+homepage:      https://github.com/nikita-volkov/hasql-th
+bug-reports:   https://github.com/nikita-volkov/hasql-th/issues
+author:        Nikita Volkov <nikita.y.volkov@mail.ru>
+maintainer:    Nikita Volkov <nikita.y.volkov@mail.ru>
+copyright:     (c) 2015, Nikita Volkov
+license:       MIT
+license-file:  LICENSE
+
 source-repository head
-  type: git
+  type:     git
   location: git://github.com/nikita-volkov/hasql-th.git
 
 library
-  hs-source-dirs: library
-  default-extensions: ApplicativeDo, Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, DuplicateRecordFields, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
-  default-language: Haskell2010
-  exposed-modules:
-    Hasql.TH
+  hs-source-dirs:     library
+  default-extensions:
+    NoImplicitPrelude
+    NoMonomorphismRestriction
+    ApplicativeDo
+    Arrows
+    BangPatterns
+    ConstraintKinds
+    DataKinds
+    DefaultSignatures
+    DeriveDataTypeable
+    DeriveFoldable
+    DeriveFunctor
+    DeriveGeneric
+    DeriveTraversable
+    DuplicateRecordFields
+    EmptyDataDecls
+    FlexibleContexts
+    FlexibleInstances
+    FunctionalDependencies
+    GADTs
+    GeneralizedNewtypeDeriving
+    LambdaCase
+    LiberalTypeSynonyms
+    MagicHash
+    MultiParamTypeClasses
+    MultiWayIf
+    OverloadedStrings
+    ParallelListComp
+    PatternGuards
+    QuasiQuotes
+    RankNTypes
+    RecordWildCards
+    ScopedTypeVariables
+    StandaloneDeriving
+    TemplateHaskell
+    TupleSections
+    TypeFamilies
+    TypeOperators
+    UnboxedTuples
+
+  default-language:   Haskell2010
+  exposed-modules:    Hasql.TH
   other-modules:
     Hasql.TH.Construction.Exp
     Hasql.TH.Extraction.ChildExprList
@@ -38,16 +76,17 @@
     Hasql.TH.Extraction.PlaceholderTypeMap
     Hasql.TH.Extraction.PrimitiveType
     Hasql.TH.Prelude
+
   build-depends:
-    base >=4.11 && <5,
-    bytestring >=0.10 && <0.12,
-    containers >=0.6 && <0.7,
-    contravariant >=1.5.2 && <2,
-    foldl >=1.4.5 && <2,
-    hasql >=1.4 && <1.7,
-    postgresql-syntax >=0.4.1 && <0.5,
-    template-haskell >=2.8 && <3,
-    template-haskell-compat-v0208 >=0.1.9 && <2,
-    text >=1 && <3,
-    uuid >=1.3 && <2,
-    vector >=0.12 && <0.14
+    , base >=4.11 && <5
+    , bytestring >=0.10 && <0.13
+    , containers >=0.6 && <0.8
+    , contravariant >=1.5.2 && <2
+    , foldl >=1.4.5 && <2
+    , hasql >=1.4 && <1.7
+    , postgresql-syntax >=0.4.1 && <0.5
+    , template-haskell >=2.8 && <3
+    , template-haskell-compat-v0208 >=0.1.9 && <2
+    , text >=1 && <3
+    , uuid >=1.3 && <2
+    , vector >=0.12 && <0.14
diff --git a/library/Hasql/TH/Construction/Exp.hs b/library/Hasql/TH/Construction/Exp.hs
--- a/library/Hasql/TH/Construction/Exp.hs
+++ b/library/Hasql/TH/Construction/Exp.hs
@@ -30,7 +30,7 @@
         ]
     ]
 
-integral :: Integral a => a -> Exp
+integral :: (Integral a) => a -> Exp
 integral x = LitE (IntegerL (fromIntegral x))
 
 list :: (a -> Exp) -> [a] -> Exp
@@ -156,7 +156,9 @@
 
 multidimensionalParamEncoder :: Bool -> Int -> Bool -> Exp -> Exp
 multidimensionalParamEncoder nullable dimensionality arrayNull =
-  applyParamToEncoder . applyNullabilityToEncoder arrayNull . AppE (VarE 'Encoders.array)
+  applyParamToEncoder
+    . applyNullabilityToEncoder arrayNull
+    . AppE (VarE 'Encoders.array)
     . applyArrayDimensionalityToEncoder dimensionality
     . applyNullabilityToEncoder nullable
 
@@ -181,7 +183,9 @@
 
 multidimensionalColumnDecoder :: Bool -> Int -> Bool -> Exp -> Exp
 multidimensionalColumnDecoder nullable dimensionality arrayNull =
-  applyColumnToDecoder . applyNullabilityToDecoder arrayNull . AppE (VarE 'Decoders.array)
+  applyColumnToDecoder
+    . applyNullabilityToDecoder arrayNull
+    . AppE (VarE 'Decoders.array)
     . applyArrayDimensionalityToDecoder dimensionality
     . applyNullabilityToDecoder nullable
 
diff --git a/library/Hasql/TH/Extraction/ChildExprList.hs b/library/Hasql/TH/Extraction/ChildExprList.hs
--- a/library/Hasql/TH/Extraction/ChildExprList.hs
+++ b/library/Hasql/TH/Extraction/ChildExprList.hs
@@ -8,8 +8,6 @@
 data ChildExpr = AChildExpr AExpr | BChildExpr BExpr | CChildExpr CExpr
   deriving (Show, Eq, Ord)
 
--- *
-
 -- |
 -- Dives one level of recursion.
 childExpr = \case
@@ -62,8 +60,6 @@
   ImplicitRowCExpr a -> implicitRow a
   GroupingCExpr a -> exprList a
 
--- *
-
 preparableStmt = \case
   SelectPreparableStmt a -> selectStmt a
   InsertPreparableStmt a -> insertStmt a
@@ -193,7 +189,9 @@
 
 simpleSelect = \case
   NormalSimpleSelect a b c d e f g ->
-    foldMap targeting a <> foldMap intoClause b <> foldMap fromClause c
+    foldMap targeting a
+      <> foldMap intoClause b
+      <> foldMap fromClause c
       <> foldMap whereClause d
       <> foldMap groupClause e
       <> foldMap havingClause f
@@ -323,8 +321,6 @@
 joinQual = \case
   UsingJoinQual _ -> []
   OnJoinQual a -> aExpr a
-
--- *
 
 exprList = fmap AChildExpr . toList
 
diff --git a/library/Hasql/TH/Extraction/OutputTypeList.hs b/library/Hasql/TH/Extraction/OutputTypeList.hs
--- a/library/Hasql/TH/Extraction/OutputTypeList.hs
+++ b/library/Hasql/TH/Extraction/OutputTypeList.hs
@@ -5,7 +5,7 @@
 import Hasql.TH.Prelude
 import PostgresqlSyntax.Ast
 
-foldable :: Foldable f => (a -> Either Text [Typename]) -> f a -> Either Text [Typename]
+foldable :: (Foldable f) => (a -> Either Text [Typename]) -> f a -> Either Text [Typename]
 foldable fn = fmap join . traverse fn . toList
 
 preparableStmt = \case
diff --git a/library/Hasql/TH/Prelude.hs b/library/Hasql/TH/Prelude.hs
--- a/library/Hasql/TH/Prelude.hs
+++ b/library/Hasql/TH/Prelude.hs
@@ -29,7 +29,7 @@
 import Data.Fixed as Exports
 import Data.Foldable as Exports
 import Data.Function as Exports hiding (id, (.))
-import Data.Functor as Exports
+import Data.Functor as Exports hiding (unzip)
 import Data.Functor.Contravariant as Exports
 import Data.Functor.Contravariant.Divisible as Exports
 import Data.Functor.Identity as Exports
@@ -77,14 +77,12 @@
 import System.Mem as Exports
 import System.Mem.StableName as Exports
 import System.Timeout as Exports
-import Text.ParserCombinators.ReadP as Exports (ReadP, ReadS, readP_to_S, readS_to_P)
-import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readP_to_Prec, readPrec_to_P, readPrec_to_S, readS_to_Prec)
 import Text.Printf as Exports (hPrintf, printf)
 import Text.Read as Exports (Read (..), readEither, readMaybe)
 import Unsafe.Coerce as Exports
 import Prelude as Exports hiding (all, and, any, concat, concatMap, elem, fail, foldl, foldl1, foldr, foldr1, id, mapM, mapM_, maximum, minimum, notElem, or, product, sequence, sequence_, sum, (.))
 
-showAsText :: Show a => a -> Text
+showAsText :: (Show a) => a -> Text
 showAsText = show >>> fromString
 
 -- |
