diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # CHANGELOG
 
+## 3.6.0
+### Changed
+* Compatibility with ghc-8.6.5
+
 ## 3.5.0
 ### Changed
 * Copatibility with ghc-8.4
diff --git a/postgresql-query.cabal b/postgresql-query.cabal
--- a/postgresql-query.cabal
+++ b/postgresql-query.cabal
@@ -1,5 +1,5 @@
 name:                postgresql-query
-version:             3.5.0
+version:             3.6.0
 
 synopsis: Sql interpolating quasiquote plus some kind of primitive ORM
           using it
diff --git a/src/Database/PostgreSQL/Query/Entity/Functions.hs b/src/Database/PostgreSQL/Query/Entity/Functions.hs
--- a/src/Database/PostgreSQL/Query/Entity/Functions.hs
+++ b/src/Database/PostgreSQL/Query/Entity/Functions.hs
@@ -276,5 +276,7 @@
   -> q
   -> m Integer
 pgSelectCount p q = do
-    [[c]] <- pgQuery [sqlExp|SELECT count(id) FROM ^{tableName p} ^{q}|]
-    return c
+    r <- pgQuery [sqlExp|SELECT count(id) FROM ^{tableName p} ^{q}|]
+    case r of
+      [[c]] -> return c
+      _ -> error "this should not happen"
diff --git a/src/Database/PostgreSQL/Query/Types.hs b/src/Database/PostgreSQL/Query/Types.hs
--- a/src/Database/PostgreSQL/Query/Types.hs
+++ b/src/Database/PostgreSQL/Query/Types.hs
@@ -45,6 +45,13 @@
 import Instances.TH.Lift ()
 import Language.Haskell.TH.Lift ( deriveLift )
 
+#if MIN_VERSION_base(4,8,0)
+import Data.Semigroup
+#else
+import Data.Monoid
+import Data.Semigroup
+#endif
+
 import qualified Blaze.ByteString.Builder.ByteString as BB
 import qualified Control.Monad.Trans.State.Lazy as STL
 import qualified Control.Monad.Trans.State.Strict as STS
