diff --git a/hasql-implicits.cabal b/hasql-implicits.cabal
--- a/hasql-implicits.cabal
+++ b/hasql-implicits.cabal
@@ -1,6 +1,6 @@
 name: hasql-implicits
-version: 0.1
-synopsis: Toolkit for constructing Hasql statements dynamically
+version: 0.1.0.1
+synopsis: Implicit definitions for Hasql, such as default codecs for standard types
 homepage: https://github.com/nikita-volkov/hasql-implicits
 bug-reports: https://github.com/nikita-volkov/hasql-implicits/issues
 author: Nikita Volkov <nikita.y.volkov@mail.ru>
diff --git a/library/Hasql/Implicits/Encoders.hs b/library/Hasql/Implicits/Encoders.hs
--- a/library/Hasql/Implicits/Encoders.hs
+++ b/library/Hasql/Implicits/Encoders.hs
@@ -11,61 +11,60 @@
   {-| Default parameter encoder with nullability specified. -}
   defaultParam :: NullableOrNot Value a
 
-#define RIGHT_QUOTED(a) a'
 #define INSTANCES(VALUE, ENCODER) \
 instance DefaultParamEncoder VALUE where { \
   defaultParam = nonNullable ENCODER; \
 }; \
 instance DefaultParamEncoder [VALUE] where { \
-  defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \
+  defaultParam = (nonNullable . array . dimension foldlStrict . element . nonNullable) ENCODER; \
 }; \
 instance DefaultParamEncoder [Maybe VALUE] where { \
-  defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \
+  defaultParam = (nonNullable . array . dimension foldlStrict . element . nullable) ENCODER; \
 }; \
 instance DefaultParamEncoder [[VALUE]] where { \
-  defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \
+  defaultParam = (nonNullable . array . dimension foldlStrict . dimension foldlStrict . element . nonNullable) ENCODER; \
 }; \
 instance DefaultParamEncoder [[Maybe VALUE]] where { \
-  defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \
+  defaultParam = (nonNullable . array . dimension foldlStrict . dimension foldlStrict . element . nullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Vector VALUE) where { \
-  defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \
+  defaultParam = (nonNullable . array . dimension foldlStrict . element . nonNullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Vector (Maybe VALUE)) where { \
-  defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \
+  defaultParam = (nonNullable . array . dimension foldlStrict . element . nullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Vector (Vector VALUE)) where { \
-  defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \
+  defaultParam = (nonNullable . array . dimension foldlStrict . dimension foldlStrict . element . nonNullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Vector (Vector (Maybe VALUE))) where { \
-  defaultParam = (nonNullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \
+  defaultParam = (nonNullable . array . dimension foldlStrict . dimension foldlStrict . element . nullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Maybe VALUE) where { \
   defaultParam = nullable ENCODER; \
 }; \
 instance DefaultParamEncoder (Maybe [VALUE]) where { \
-  defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \
+  defaultParam = (nullable . array . dimension foldlStrict . element . nonNullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Maybe [Maybe VALUE]) where { \
-  defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \
+  defaultParam = (nullable . array . dimension foldlStrict . element . nullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Maybe [[VALUE]]) where { \
-  defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \
+  defaultParam = (nullable . array . dimension foldlStrict . dimension foldlStrict . element . nonNullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Maybe [[Maybe VALUE]]) where { \
-  defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \
+  defaultParam = (nullable . array . dimension foldlStrict . dimension foldlStrict . element . nullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Maybe (Vector VALUE)) where { \
-  defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \
+  defaultParam = (nullable . array . dimension foldlStrict . element . nonNullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Maybe (Vector (Maybe VALUE))) where { \
-  defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \
+  defaultParam = (nullable . array . dimension foldlStrict . element . nullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Maybe (Vector (Vector VALUE))) where { \
-  defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nonNullable) ENCODER; \
+  defaultParam = (nullable . array . dimension foldlStrict . dimension foldlStrict . element . nonNullable) ENCODER; \
 }; \
 instance DefaultParamEncoder (Maybe (Vector (Vector (Maybe VALUE)))) where { \
-  defaultParam = (nullable . array . dimension RIGHT_QUOTED(foldl) . dimension RIGHT_QUOTED(foldl) . element . nullable) ENCODER; \
+  defaultParam = (nullable . array . dimension foldlStrict . dimension foldlStrict . element . nullable) ENCODER; \
 }
 
 INSTANCES(Char, char)
@@ -88,4 +87,3 @@
 INSTANCES((NetAddr IP), inet)
 
 #undef INSTANCES
-#undef RIGHT_QUOTED
diff --git a/library/Hasql/Implicits/Prelude.hs b/library/Hasql/Implicits/Prelude.hs
--- a/library/Hasql/Implicits/Prelude.hs
+++ b/library/Hasql/Implicits/Prelude.hs
@@ -1,6 +1,7 @@
 module Hasql.Implicits.Prelude
 (
   module Exports,
+  foldlStrict,
 )
 where
 
@@ -104,3 +105,7 @@
 -- network-ip
 -------------------------
 import Network.IP.Addr as Exports (NetAddr, IP)
+
+{-# INLINE foldlStrict #-}
+foldlStrict :: Foldable foldable => (b -> a -> b) -> b -> foldable a -> b
+foldlStrict = foldl'
