diff --git a/pg-store.cabal b/pg-store.cabal
--- a/pg-store.cabal
+++ b/pg-store.cabal
@@ -1,5 +1,5 @@
 name:                pg-store
-version:             0.4.2
+version:             0.4.3
 category:            Database
 synopsis:            Simple storage interface to PostgreSQL
 description:         Simple storage interface to PostgreSQL
diff --git a/src/Database/PostgreSQL/Store.hs b/src/Database/PostgreSQL/Store.hs
--- a/src/Database/PostgreSQL/Store.hs
+++ b/src/Database/PostgreSQL/Store.hs
@@ -48,11 +48,11 @@
 	RowErrorDetail (..)
 ) where
 
-import           Database.PostgreSQL.Store.Types
-import           Database.PostgreSQL.Store.Query
-import           Database.PostgreSQL.Store.Table
 import           Database.PostgreSQL.Store.Entity
-import           Database.PostgreSQL.Store.RowParser
 import           Database.PostgreSQL.Store.Errand
+import           Database.PostgreSQL.Store.Query
+import           Database.PostgreSQL.Store.RowParser
+import           Database.PostgreSQL.Store.Table
+import           Database.PostgreSQL.Store.Types
 
-import qualified Database.PostgreSQL.LibPQ as P
+import qualified Database.PostgreSQL.LibPQ           as P
diff --git a/src/Database/PostgreSQL/Store/Entity.hs b/src/Database/PostgreSQL/Store/Entity.hs
--- a/src/Database/PostgreSQL/Store/Entity.hs
+++ b/src/Database/PostgreSQL/Store/Entity.hs
@@ -1,16 +1,15 @@
-{-# LANGUAGE OverloadedStrings,
-             ConstraintKinds,
-             DataKinds,
-             DefaultSignatures,
-             FlexibleContexts,
-             FlexibleInstances,
-             ScopedTypeVariables,
-             TypeFamilies,
-             TypeOperators,
-             TypeApplications,
-             TypeSynonymInstances,
-             UndecidableInstances
-#-}
+{-# LANGUAGE ConstraintKinds      #-}
+{-# LANGUAGE DataKinds            #-}
+{-# LANGUAGE DefaultSignatures    #-}
+{-# LANGUAGE FlexibleContexts     #-}
+{-# LANGUAGE FlexibleInstances    #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE ScopedTypeVariables  #-}
+{-# LANGUAGE TypeApplications     #-}
+{-# LANGUAGE TypeFamilies         #-}
+{-# LANGUAGE TypeOperators        #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+{-# LANGUAGE UndecidableInstances #-}
 
 -- |
 -- Module:     Database.PostgreSQL.Store.Entity
@@ -43,38 +42,36 @@
 	GenericEntity
 ) where
 
-import           GHC.Generics (Meta (..))
-import           GHC.TypeLits hiding (Text)
+import           GHC.Generics                            (Meta (..))
+import           GHC.TypeLits                            hiding (Text)
 
 import           Control.Applicative
 
-import           Data.Int
-import           Data.Word
+import qualified Data.Aeson                              as A
+import           Data.Attoparsec.ByteString
+import           Data.Attoparsec.ByteString.Char8        (decimal, double, scientific, signed,
+                                                          skipSpace)
 import           Data.Bits
+import qualified Data.ByteString                         as B
+import qualified Data.ByteString.Builder                 as B
+import qualified Data.ByteString.Lazy                    as BL
+import           Data.Int
 import           Data.Proxy
+import           Data.Scientific                         (FPFormat (Fixed), Scientific,
+                                                          formatScientific)
 import           Data.Semigroup
-import           Data.Scientific (Scientific, formatScientific, FPFormat (Fixed))
+import qualified Data.Text                               as T
+import qualified Data.Text.Encoding                      as T
+import qualified Data.Text.Lazy                          as TL
+import           Data.Word
 import           Numeric.Natural
 
-import qualified Data.Aeson              as A
-
-import           Data.Attoparsec.ByteString
-import           Data.Attoparsec.ByteString.Char8 (signed, decimal, double, scientific, skipSpace)
-
-import qualified Data.ByteString         as B
-import qualified Data.ByteString.Builder as B
-import qualified Data.ByteString.Lazy    as BL
-
-import qualified Data.Text               as T
-import qualified Data.Text.Encoding      as T
-import qualified Data.Text.Lazy          as TL
-
-import           Database.PostgreSQL.Store.Types
-import           Database.PostgreSQL.Store.Tuple
 import           Database.PostgreSQL.Store.Generics
-import           Database.PostgreSQL.Store.Utilities
-import           Database.PostgreSQL.Store.RowParser
 import           Database.PostgreSQL.Store.Query.Builder
+import           Database.PostgreSQL.Store.RowParser
+import           Database.PostgreSQL.Store.Tuple
+import           Database.PostgreSQL.Store.Types
+import           Database.PostgreSQL.Store.Utilities
 
 -- | Generic record entity
 class (KnownNat (GRecordWidth rec)) => GEntityRecord (rec :: KRecord) where
@@ -170,7 +167,6 @@
 class (KnownNat (Width a)) => Entity a where
 	-- | Number of values of which the entity consists
 	type Width a :: Nat
-
 	type Width a = GEntityWidth (Rep a)
 
 	-- | Embed the entity into the query.
@@ -182,8 +178,8 @@
 	-- | Retrieve an instance of @a@ from the result set.
 	parseEntity :: RowParser (Width a) a
 
-	default parseEntity :: (Generic a, GEntity (Rep a))
-	                    => RowParser (GEntityWidth (Rep a)) a
+	default parseEntity :: (Generic a, GEntity (Rep a), Width a ~ GEntityWidth (Rep a))
+	                    => RowParser (Width a) a
 	parseEntity = parseGeneric
 
 -- | Embed an entity into the query.
diff --git a/src/Database/PostgreSQL/Store/Errand.hs b/src/Database/PostgreSQL/Store/Errand.hs
--- a/src/Database/PostgreSQL/Store/Errand.hs
+++ b/src/Database/PostgreSQL/Store/Errand.hs
@@ -1,16 +1,14 @@
-{-# LANGUAGE OverloadedStrings,
-             GeneralizedNewtypeDeriving,
-             TypeApplications,
-             TypeFamilies,
-             ScopedTypeVariables,
-             MultiParamTypeClasses,
-             FunctionalDependencies,
-             UndecidableInstances,
-             FlexibleInstances,
-             FlexibleContexts,
-             TypeSynonymInstances,
-             DataKinds,
-             QuasiQuotes #-}
+{-# LANGUAGE DataKinds                  #-}
+{-# LANGUAGE FlexibleContexts           #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE MultiParamTypeClasses      #-}
+{-# LANGUAGE OverloadedStrings          #-}
+{-# LANGUAGE QuasiQuotes                #-}
+{-# LANGUAGE ScopedTypeVariables        #-}
+{-# LANGUAGE TypeFamilies               #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+{-# LANGUAGE UndecidableInstances       #-}
 
 -- |
 -- Module:     Database.PostgreSQL.Store.Errand
@@ -50,23 +48,20 @@
 import           GHC.TypeLits
 
 import           Control.Applicative
-import           Control.Monad.Trans
 import           Control.Monad.Except
 import           Control.Monad.Reader
 
-import           Data.Maybe
-
-import qualified Data.ByteString           as B
-
 import           Data.Attoparsec.ByteString.Char8
+import qualified Data.ByteString                     as B
+import           Data.Maybe
 
-import qualified Database.PostgreSQL.LibPQ as P
+import qualified Database.PostgreSQL.LibPQ           as P
 
-import           Database.PostgreSQL.Store.Types
-import           Database.PostgreSQL.Store.Tuple
 import           Database.PostgreSQL.Store.Entity
-import           Database.PostgreSQL.Store.RowParser
 import           Database.PostgreSQL.Store.Query
+import           Database.PostgreSQL.Store.RowParser
+import           Database.PostgreSQL.Store.Tuple
+import           Database.PostgreSQL.Store.Types
 
 -- | Error during errand
 data ErrandError
@@ -141,7 +136,7 @@
 
 -- | Counts the rows that have been affected by a query.
 countAffectedRows :: P.Result -> Errand Int
-countAffectedRows res = do
+countAffectedRows res =
 	fmap (\ numTuples -> fromMaybe 0 (numTuples >>= maybeResult . endResult . parse decimal))
 	     (liftIO (P.cmdTuples res))
 	where
@@ -160,14 +155,19 @@
 	-- | Execute the query described in @q x@ and pass its 'P.Result' to the given function.
 	executeWith :: (P.Result -> Errand r) -> q x -> ErrandResult q r
 
+-- |
+acceptResult :: IO (Maybe P.Result) -> Errand P.Result
+acceptResult action = do
+	mbRes <- liftIO action
+	res <- transformResult mbRes
+	res <$ validateResult res
+
 instance ErrandQuery Statement r where
 	type ErrandResult Statement r = Errand r
 
 	executeWith end (Statement stmt) = do
 		con <- Errand ask
-		mbRes <- liftIO (P.execParams con stmt [] P.Text)
-		res <- transformResult mbRes
-		validateResult res
+		res <- acceptResult (P.execParams con stmt [] P.Text)
 		end res
 
 instance ErrandQuery Query r where
@@ -175,9 +175,7 @@
 
 	executeWith end (Query stmt params) = do
 		con <- Errand ask
-		mbRes <- liftIO (P.execParams con stmt params P.Text)
-		res <- transformResult mbRes
-		validateResult res
+		res <- acceptResult (P.execParams con stmt params P.Text)
 		end res
 
 instance (WithTuple ts (Errand r)) => ErrandQuery (PrepQuery ts) r where
diff --git a/src/Database/PostgreSQL/Store/Generics.hs b/src/Database/PostgreSQL/Store/Generics.hs
--- a/src/Database/PostgreSQL/Store/Generics.hs
+++ b/src/Database/PostgreSQL/Store/Generics.hs
@@ -1,14 +1,13 @@
-{-# LANGUAGE ConstraintKinds,
-             DataKinds,
-             FlexibleContexts,
-             FlexibleInstances,
-             GADTs,
-             StandaloneDeriving,
-             TypeFamilies,
-             TypeOperators,
-             TypeSynonymInstances,
-             UndecidableInstances
-#-}
+{-# LANGUAGE ConstraintKinds      #-}
+{-# LANGUAGE DataKinds            #-}
+{-# LANGUAGE FlexibleContexts     #-}
+{-# LANGUAGE FlexibleInstances    #-}
+{-# LANGUAGE GADTs                #-}
+{-# LANGUAGE StandaloneDeriving   #-}
+{-# LANGUAGE TypeFamilies         #-}
+{-# LANGUAGE TypeOperators        #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+{-# LANGUAGE UndecidableInstances #-}
 
 -- |
 -- Module:     Database.PostgreSQL.Store.Generics
diff --git a/src/Database/PostgreSQL/Store/Query/Builder.hs b/src/Database/PostgreSQL/Store/Query/Builder.hs
--- a/src/Database/PostgreSQL/Store/Query/Builder.hs
+++ b/src/Database/PostgreSQL/Store/Query/Builder.hs
@@ -1,8 +1,9 @@
-{-# LANGUAGE ExistentialQuantification,
-             TypeOperators,
-             TypeApplications,
-             ScopedTypeVariables,
-             DataKinds #-}
+{-# LANGUAGE DataKinds                 #-}
+{-# LANGUAGE ExistentialQuantification #-}
+{-# LANGUAGE MultiParamTypeClasses     #-}
+{-# LANGUAGE ScopedTypeVariables       #-}
+{-# LANGUAGE TypeApplications          #-}
+{-# LANGUAGE TypeOperators             #-}
 
 -- |
 -- Module:     Database.PostgreSQL.Store.Query.Builder
@@ -36,18 +37,16 @@
 	withParam9
 ) where
 
-import           Data.Semigroup
-
+import qualified Data.ByteString                     as B
+import           Data.Hashable
 import           Data.List
+import           Data.Semigroup
 import           Data.String
 import           Data.Tagged
-import           Data.Hashable
 
-import qualified Data.ByteString as B
-
+import           Database.PostgreSQL.Store.Tuple
 import           Database.PostgreSQL.Store.Types
 import           Database.PostgreSQL.Store.Utilities
-import           Database.PostgreSQL.Store.Tuple
 
 -- | Generator for queries, its type parameter hints the type needed to generate the attached values
 data QueryGenerator a
diff --git a/src/Database/PostgreSQL/Store/Query/TH.hs b/src/Database/PostgreSQL/Store/Query/TH.hs
--- a/src/Database/PostgreSQL/Store/Query/TH.hs
+++ b/src/Database/PostgreSQL/Store/Query/TH.hs
@@ -1,4 +1,5 @@
-{-# LANGUAGE TemplateHaskell, OverloadedStrings #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TemplateHaskell   #-}
 
 -- |
 -- Module:     Database.PostgreSQL.Store.Query.TH
@@ -110,25 +111,26 @@
 	pgPrepQuery
 ) where
 
+import           Language.Haskell.Meta.Parse
 import           Language.Haskell.TH
 import           Language.Haskell.TH.Quote
-import           Language.Haskell.Meta.Parse
 
 import           Control.Applicative
 
-import           Data.Tagged
-import           Data.List
-import           Data.Char
+import qualified Blaze.ByteString.Builder                as B
+import qualified Blaze.ByteString.Builder.Char.Utf8      as B
+
 import           Data.Attoparsec.Text
-import qualified Data.ByteString                    as B
-import qualified Blaze.ByteString.Builder           as B
-import qualified Blaze.ByteString.Builder.Char.Utf8 as B
-import qualified Data.Text                          as T
+import qualified Data.ByteString                         as B
+import           Data.Char
+import           Data.List
+import           Data.Tagged
+import qualified Data.Text                               as T
 
-import           Database.PostgreSQL.Store.Utilities
 import           Database.PostgreSQL.Store.Entity
-import           Database.PostgreSQL.Store.Table
 import           Database.PostgreSQL.Store.Query.Builder
+import           Database.PostgreSQL.Store.Table
+import           Database.PostgreSQL.Store.Utilities
 
 -- | Name
 valueName :: Parser String
diff --git a/src/Database/PostgreSQL/Store/RowParser.hs b/src/Database/PostgreSQL/Store/RowParser.hs
--- a/src/Database/PostgreSQL/Store/RowParser.hs
+++ b/src/Database/PostgreSQL/Store/RowParser.hs
@@ -1,9 +1,9 @@
-{-# LANGUAGE DataKinds,
-             RankNTypes,
-             KindSignatures,
-             TypeOperators,
-             TypeApplications,
-             ScopedTypeVariables #-}
+{-# LANGUAGE DataKinds           #-}
+{-# LANGUAGE KindSignatures      #-}
+{-# LANGUAGE RankNTypes          #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE TypeApplications    #-}
+{-# LANGUAGE TypeOperators       #-}
 
 -- |
 -- Module:     Database.PostgreSQL.Store.RowParser
@@ -39,12 +39,12 @@
 
 import           Control.Monad.Except
 
+import qualified Data.ByteString                 as B
 import           Data.Proxy
-import qualified Data.ByteString as B
 
 import           Database.PostgreSQL.Store.Types
 
-import qualified Database.PostgreSQL.LibPQ as P
+import qualified Database.PostgreSQL.LibPQ       as P
 
 -- | Location of an error
 data RowErrorLocation = RowErrorLocation P.Column P.Row
@@ -115,7 +115,7 @@
 -- | Just like the '(<*>)' operator.
 (<*>$) :: forall a v b w. (KnownNat v)
        => RowParser v (a -> b) -> RowParser w a -> RowParser (v + w) b
-pf <*>$ px = pf >>=$ \ f -> (\ x -> f x) <$> px
+pf <*>$ px = pf >>=$ (<$> px)
 
 -- | Skip a number of columns.
 skipColumns :: RowParser n ()
@@ -138,7 +138,7 @@
 
 -- | Retrieve a column's type and content.
 retrieveColumn :: RowParser 1 (Oid, Maybe B.ByteString)
-retrieveColumn = processContent (\ a b -> Just (a, b))
+retrieveColumn = processContent (curry Just)
 
 -- | Retrieve a column's content.
 retrieveContent :: RowParser 1 B.ByteString
diff --git a/src/Database/PostgreSQL/Store/Table.hs b/src/Database/PostgreSQL/Store/Table.hs
--- a/src/Database/PostgreSQL/Store/Table.hs
+++ b/src/Database/PostgreSQL/Store/Table.hs
@@ -1,17 +1,15 @@
-{-# LANGUAGE OverloadedStrings,
-             ConstraintKinds,
-             DataKinds,
-             FlexibleContexts,
-             FlexibleInstances,
-             TypeFamilies,
-             TypeOperators,
-             TypeSynonymInstances,
-             UndecidableInstances,
-             ScopedTypeVariables,
-             QuasiQuotes,
-             DefaultSignatures,
-             TypeApplications
-#-}
+{-# LANGUAGE ConstraintKinds      #-}
+{-# LANGUAGE DataKinds            #-}
+{-# LANGUAGE DefaultSignatures    #-}
+{-# LANGUAGE FlexibleContexts     #-}
+{-# LANGUAGE FlexibleInstances    #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE ScopedTypeVariables  #-}
+{-# LANGUAGE TypeApplications     #-}
+{-# LANGUAGE TypeFamilies         #-}
+{-# LANGUAGE TypeOperators        #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+{-# LANGUAGE UndecidableInstances #-}
 
 -- |
 -- Module:     Database.PostgreSQL.Store.Table
@@ -46,15 +44,14 @@
 import           GHC.Generics
 import           GHC.TypeLits
 
+import qualified Data.ByteString                         as B
 import           Data.Kind
 import           Data.Proxy
 import           Data.Tagged
 
-import qualified Data.ByteString as B
-
 import           Database.PostgreSQL.Store.Entity
-import           Database.PostgreSQL.Store.Utilities
 import           Database.PostgreSQL.Store.Query.Builder
+import           Database.PostgreSQL.Store.Utilities
 
 -- | Type-level description of a record
 data KColumns
diff --git a/src/Database/PostgreSQL/Store/Tuple.hs b/src/Database/PostgreSQL/Store/Tuple.hs
--- a/src/Database/PostgreSQL/Store/Tuple.hs
+++ b/src/Database/PostgreSQL/Store/Tuple.hs
@@ -1,20 +1,18 @@
-{-# LANGUAGE GADTs,
-             TypeFamilies,
-             TypeOperators,
-             TypeApplications,
-             ScopedTypeVariables,
-             MultiParamTypeClasses,
-             RankNTypes,
-             DataKinds,
-             PolyKinds,
-             ConstraintKinds,
-             FlexibleContexts,
-             FlexibleInstances,
-             UndecidableInstances,
-             FunctionalDependencies,
-             BangPatterns,
-             StandaloneDeriving
-#-}
+{-# LANGUAGE BangPatterns           #-}
+{-# LANGUAGE ConstraintKinds        #-}
+{-# LANGUAGE DataKinds              #-}
+{-# LANGUAGE FlexibleContexts       #-}
+{-# LANGUAGE FlexibleInstances      #-}
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE GADTs                  #-}
+{-# LANGUAGE MultiParamTypeClasses  #-}
+{-# LANGUAGE PolyKinds              #-}
+{-# LANGUAGE RankNTypes             #-}
+{-# LANGUAGE ScopedTypeVariables    #-}
+{-# LANGUAGE TypeApplications       #-}
+{-# LANGUAGE TypeFamilies           #-}
+{-# LANGUAGE TypeOperators          #-}
+{-# LANGUAGE UndecidableInstances   #-}
 
 -- |
 -- Module:     Database.PostgreSQL.Store.Tuple
@@ -45,16 +43,16 @@
 
 import GHC.TypeLits
 
-import Data.List
 import Data.Kind
+import Data.List
 import Data.Tagged
 
+infixl 5 |>
+
 -- | Append a single element to the end of a list.
 type family (|>) (x :: [a]) (y :: a) :: [a] where
 	'[]       |> y = '[y]
-	(x ': xs) |> y = x ': (xs |> y)
-
-infixl 5 |>
+	(x : xs) |> y = x : (xs |> y)
 
 -- | Generic product type
 data Tuple (ts :: [Type]) where
diff --git a/src/Database/PostgreSQL/Store/Types.hs b/src/Database/PostgreSQL/Store/Types.hs
--- a/src/Database/PostgreSQL/Store/Types.hs
+++ b/src/Database/PostgreSQL/Store/Types.hs
@@ -16,13 +16,13 @@
 	Format
 ) where
 
-import           Text.Show.Functions ()
+import           Text.Show.Functions             ()
 
-import qualified Data.ByteString as B
+import qualified Data.ByteString                 as B
 
 import           Database.PostgreSQL.Store.Tuple
 
-import           Database.PostgreSQL.LibPQ (Oid (..), Format (Text))
+import           Database.PostgreSQL.LibPQ       (Format (Text), Oid (..))
 
 -- | SQL statement
 newtype Statement a = Statement B.ByteString
diff --git a/src/Database/PostgreSQL/Store/Utilities.hs b/src/Database/PostgreSQL/Store/Utilities.hs
--- a/src/Database/PostgreSQL/Store/Utilities.hs
+++ b/src/Database/PostgreSQL/Store/Utilities.hs
@@ -15,13 +15,14 @@
 import           Language.Haskell.TH
 import           Language.Haskell.TH.Syntax
 
-import qualified Data.ByteString                    as B
 import qualified Blaze.ByteString.Builder           as B
 import qualified Blaze.ByteString.Builder.Char.Utf8 as B
+
+import qualified Data.ByteString                    as B
 import qualified Data.Text                          as T
 import qualified Data.Text.Encoding                 as T
 
-import           Text.Read (readMaybe)
+import           Text.Read                          (readMaybe)
 
 -- | Show as 'ByteString'
 showByteString :: (Show a) => a -> B.ByteString
