From 3e1d3deeded8d9acbbcc4047cc408f0fa3110b84 Mon Sep 17 00:00:00 2001 From: Herbert Valerio Riedel Date: Tue, 21 Mar 2017 22:07:03 +0100 Subject: [PATCH] Tighten version bound on base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Given that CI only seems to test against GHC 7.10 & GHC 8.0 it's safe to say that only `base >= 4.8` is officially supported. And empirically, GHC 7.8.4 runs into the compile error below ``` Configuring component lib from esqueleto-2.5.0... Preprocessing library esqueleto-2.5.0... [1 of 5] Compiling Database.Esqueleto.Internal.PersistentImport ( src/Database/Esqueleto/Internal/PersistentImport.hs, /tmp/matrix-worker/1485112890/dist-newstyle/build/x86_64-linux/ghc-7.8.4/esqueleto-2.5.0/build/Database/Esqueleto/Internal/PersistentImport.o ) src/Database/Esqueleto/Internal/PersistentImport.hs:7:1: Warning: The import item ‘PersistQuery(..)’ suggests that ‘PersistQuery’ has (in-scope) constructors or class methods, but it has none [2 of 5] Compiling Database.Esqueleto.Internal.Language ( src/Database/Esqueleto/Internal/Language.hs, /tmp/matrix-worker/1485112890/dist-newstyle/build/x86_64-linux/ghc-7.8.4/esqueleto-2.5.0/build/Database/Esqueleto/Internal/Language.o ) src/Database/Esqueleto/Internal/Language.hs:55:1: Warning: The qualified import of ‘Data.ByteString.Lazy’ is redundant except perhaps to import instances from ‘Data.ByteString.Lazy’ To import instances alone, use: import Data.ByteString.Lazy() [3 of 5] Compiling Database.Esqueleto.Internal.Sql ( src/Database/Esqueleto/Internal/Sql.hs, /tmp/matrix-worker/1485112890/dist-newstyle/build/x86_64-linux/ghc-7.8.4/esqueleto-2.5.0/build/Database/Esqueleto/Internal/Sql.o ) src/Database/Esqueleto/Internal/Sql.hs:761:32: Could not deduce (Functor m1) arising from a use of ‘<$>’ from the context (SqlSelect a r, MonadIO m1, MonadIO m2) bound by the type signature for rawSelectSource :: (SqlSelect a r, MonadIO m1, MonadIO m2) => Mode -> SqlQuery a -> SqlReadT m1 (Acquire (C.Source m2 r)) at src/Database/Esqueleto/Internal/Sql.hs:(753,20)-(758,57) or from (SqlBackendCanRead backend) bound by the type signature for rawSelectSource :: (SqlBackendCanRead backend) => Mode -> SqlQuery a -> R.ReaderT backend m1 (Acquire (C.Source m2 r)) at src/Database/Esqueleto/Internal/Sql.hs:(759,1)-(778,35) Possible fix: add (Functor m1) to the context of the type signature for rawSelectSource :: (SqlBackendCanRead backend) => Mode -> SqlQuery a -> R.ReaderT backend m1 (Acquire (C.Source m2 r)) or the type signature for rawSelectSource :: (SqlSelect a r, MonadIO m1, MonadIO m2) => Mode -> SqlQuery a -> SqlReadT m1 (Acquire (C.Source m2 r)) In a stmt of a 'do' block: conn <- persistBackend <$> R.ask In the expression: do { conn <- persistBackend <$> R.ask; res <- run conn; return $ (C.$= massage) `fmap` res } In an equation for ‘rawSelectSource’: rawSelectSource mode query = do { conn <- persistBackend <$> R.ask; res <- run conn; return $ (C.$= massage) `fmap` res } where run conn = uncurry rawQueryRes $ first builderToText $ toRawSql mode (conn, initialIdentState) query massage = do { mrow <- C.await; .... } process = sqlSelectProcessRow src/Database/Esqueleto/Internal/Sql.hs:882:26: Could not deduce (Functor m) arising from a use of ‘<$>’ from the context (MonadIO m, SqlSelect a r, IsSqlBackend backend) bound by the type signature for rawEsqueleto :: (MonadIO m, SqlSelect a r, IsSqlBackend backend) => Mode -> SqlQuery a -> R.ReaderT backend m Int64 at src/Database/Esqueleto/Internal/Sql.hs:(877,17)-(880,39) Possible fix: add (Functor m) to the context of the type signature for rawEsqueleto :: (MonadIO m, SqlSelect a r, IsSqlBackend backend) => Mode -> SqlQuery a -> R.ReaderT backend m Int64 In a stmt of a 'do' block: conn <- persistBackend <$> R.ask In the expression: do { conn <- persistBackend <$> R.ask; uncurry rawExecuteCount $ first builderToText $ toRawSql mode (conn, initialIdentState) query } In an equation for ‘rawEsqueleto’: rawEsqueleto mode query = do { conn <- persistBackend <$> R.ask; uncurry rawExecuteCount $ first builderToText $ toRawSql mode (conn, initialIdentState) query } ``` --- esqueleto.cabal | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esqueleto.cabal b/esqueleto.cabal index 2b3c20d..1bf83c2 100644 --- a/esqueleto.cabal +++ b/esqueleto.cabal @@ -63,7 +63,7 @@ library other-modules: Database.Esqueleto.Internal.PersistentImport build-depends: - base >= 4.5 && < 5.0 + base >= 4.8 && < 5.0 , bytestring , text >= 0.11 && < 1.3 , persistent >= 2.5 && < 2.7