From d967f2b4a72219e3182ddcd951dd46be6b467e87 Mon Sep 17 00:00:00 2001 From: Felipe Lessa Date: Sun, 31 May 2015 14:53:26 -0300 Subject: [PATCH] More GHC 7.8 fixes: DeriveDataTypeable, imports, (Functor m). --- .../src/Web/ServerSession/Backend/Redis/Internal.hs | 2 +- .../serversession-frontend-snap.cabal | 1 + .../src/Web/ServerSession/Frontend/Wai/Internal.hs | 6 +++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/serversession-backend-redis/src/Web/ServerSession/Backend/Redis/Internal.hs b/serversession-backend-redis/src/Web/ServerSession/Backend/Redis/Internal.hs index 39dc3cf..12af9c7 100644 --- a/serversession-backend-redis/src/Web/ServerSession/Backend/Redis/Internal.hs +++ b/serversession-backend-redis/src/Web/ServerSession/Backend/Redis/Internal.hs @@ -26,7 +26,7 @@ module Web.ServerSession.Backend.Redis.Internal , throwRS ) where -import Control.Applicative ((<$)) +import Control.Applicative ((<$), (<$>)) import Control.Arrow (first) import Control.Monad (void, when) import Control.Monad.IO.Class (liftIO) diff --git a/serversession-frontend-snap/serversession-frontend-snap.cabal b/serversession-frontend-snap/serversession-frontend-snap.cabal index b01ac6e..7e4d670 100644 --- a/serversession-frontend-snap/serversession-frontend-snap.cabal +++ b/serversession-frontend-snap/serversession-frontend-snap.cabal @@ -32,6 +32,7 @@ library Web.ServerSession.Frontend.Snap Web.ServerSession.Frontend.Snap.Internal extensions: + DeriveDataTypeable FlexibleContexts OverloadedStrings TypeFamilies diff --git a/serversession-frontend-wai/src/Web/ServerSession/Frontend/Wai/Internal.hs b/serversession-frontend-wai/src/Web/ServerSession/Frontend/Wai/Internal.hs index e47c750..36f93ac 100644 --- a/serversession-frontend-wai/src/Web/ServerSession/Frontend/Wai/Internal.hs +++ b/serversession-frontend-wai/src/Web/ServerSession/Frontend/Wai/Internal.hs @@ -36,7 +36,7 @@ import qualified Web.Cookie as C -- that uses 'WS.withSession', 'createState', 'sessionStore', -- 'getCookieName' and 'createCookieTemplate'. withServerSession - :: (MonadIO m, MonadIO n, Storage sto, SessionData sto ~ SessionMap) + :: (Functor m, MonadIO m, MonadIO n, Storage sto, SessionData sto ~ SessionMap) => V.Key (WS.Session m Text ByteString) -- ^ 'V.Vault' key to use when passing the session through. -> (State sto -> State sto) -- ^ Set any options on the @serversession@ state. -> sto -- ^ Storage backend. @@ -58,7 +58,7 @@ withServerSession key opts storage = liftIO $ do -- return an empty @ByteString@ when the empty session was not -- saved. sessionStore - :: (MonadIO m, Storage sto, KeyValue (SessionData sto)) + :: (Functor m, MonadIO m, Storage sto, KeyValue (SessionData sto)) => State sto -- ^ @serversession@ state, incl. storage backend. -> WS.SessionStore m (Key (SessionData sto)) (Value (SessionData sto)) -- ^ @wai-session@ session store. @@ -75,7 +75,7 @@ sessionStore state = -- | Build a 'WS.Session' from an 'I.IORef' containing the -- session data. -mkSession :: (MonadIO m, KeyValue sess) => I.IORef sess -> WS.Session m (Key sess) (Value sess) +mkSession :: (Functor m, MonadIO m, KeyValue sess) => I.IORef sess -> WS.Session m (Key sess) (Value sess) mkSession sessionRef = -- We need to use atomicModifyIORef instead of readIORef -- because latter may be reordered (cf. "Memory Model" on