diff --git a/hasql.cabal b/hasql.cabal
--- a/hasql.cabal
+++ b/hasql.cabal
@@ -1,5 +1,5 @@
 name: hasql
-version: 1.4.3
+version: 1.4.4
 category: Hasql, Database, PostgreSQL
 synopsis: An efficient PostgreSQL driver with a flexible mapping API
 description:
@@ -56,7 +56,7 @@
   build-depends:
     attoparsec >=0.10 && <0.14,
     base >=4.9 && <5,
-    base-prelude >=0.1.19 && <2,
+    base-prelude >=1.4 && <2,
     bytestring >=0.10 && <0.11,
     bytestring-strict-builder >=0.4.5.1 && <0.5,
     contravariant >=1.3 && <2,
@@ -67,7 +67,7 @@
     loch-th ==0.2.*,
     mtl >=2 && <3,
     placeholders ==0.1.*,
-    postgresql-binary >=0.12.2 && <0.13,
+    postgresql-binary >=0.12.3 && <0.13,
     postgresql-libpq ==0.9.*,
     profunctors >=5.1 && <6,
     text >=1 && <2,
diff --git a/library/Hasql/Private/Decoders.hs b/library/Hasql/Private/Decoders.hs
--- a/library/Hasql/Private/Decoders.hs
+++ b/library/Hasql/Private/Decoders.hs
@@ -458,7 +458,7 @@
 Composable decoder of composite values (rows, records).
 -}
 newtype Composite a = Composite (Composite.Composite a)
-  deriving (Functor, Applicative, Monad)
+  deriving (Functor, Applicative, Monad, MonadFail)
 
 {-|
 Lift a 'Value' decoder into a 'Composite' decoder for parsing of component values.
diff --git a/library/Hasql/Private/Decoders/Composite.hs b/library/Hasql/Private/Decoders/Composite.hs
--- a/library/Hasql/Private/Decoders/Composite.hs
+++ b/library/Hasql/Private/Decoders/Composite.hs
@@ -6,7 +6,7 @@
 
 newtype Composite a =
   Composite (ReaderT Bool A.Composite a)
-  deriving (Functor, Applicative, Monad)
+  deriving (Functor, Applicative, Monad, MonadFail)
 
 {-# INLINE run #-}
 run :: Composite a -> Bool -> A.Value a
diff --git a/library/Hasql/Private/Decoders/Row.hs b/library/Hasql/Private/Decoders/Row.hs
--- a/library/Hasql/Private/Decoders/Row.hs
+++ b/library/Hasql/Private/Decoders/Row.hs
@@ -3,10 +3,8 @@
 import Hasql.Private.Prelude hiding (error)
 import Hasql.Private.Errors
 import qualified Database.PostgreSQL.LibPQ as LibPQ
-import qualified Data.Text as T
 import qualified PostgreSQL.Binary.Decoding as A
 import qualified Hasql.Private.Decoders.Value as Value
-import Control.Monad.Fail (MonadFail(..))
 
 
 newtype Row a =
@@ -14,7 +12,7 @@
   deriving (Functor, Applicative, Monad)
 
 instance MonadFail Row where
-  fail = error . ValueError . T.pack
+  fail = error . ValueError . fromString
 
 data Env =
   Env !LibPQ.Result !LibPQ.Row !LibPQ.Column !Bool !(IORef LibPQ.Column)
