aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Control/Monad/SariulClocks.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Control/Monad/SariulClocks.hs')
-rw-r--r--src/Control/Monad/SariulClocks.hs23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/Control/Monad/SariulClocks.hs b/src/Control/Monad/SariulClocks.hs
index fc5a7e5..e25add2 100644
--- a/src/Control/Monad/SariulClocks.hs
+++ b/src/Control/Monad/SariulClocks.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
module Control.Monad.SariulClocks ( SariulScoresMonad
@@ -11,15 +12,15 @@ module Control.Monad.SariulClocks ( SariulScoresMonad
, getScores
, modifyScores) where
-import Control.Monad (liftM)
-import Control.Monad.Trans (MonadIO, lift)
-import Control.Monad.State (StateT, MonadState, get, put, evalStateT)
-import Types.Session
-import Types.Scores
-import Types.Classes
-import Data.Classes
-import Network.CGI.Monad (CGIT, MonadCGI, cgiAddHeader, cgiGet)
-import Network.CGI (runCGI, handleErrors, CGIResult)
+import Control.Monad (liftM)
+import Control.Monad.State (MonadState, StateT, evalStateT, get, put)
+import Control.Monad.Trans (MonadIO, lift)
+import Data.Classes
+import Network.CGI (CGIResult, handleErrors, runCGI)
+import Network.CGI.Monad (CGIT, MonadCGI, cgiAddHeader, cgiGet)
+import Types.Classes
+import Types.Scores
+import Types.Session
class ( Monad a
, MonadIO a) => SariulScoresMonad a where
@@ -34,11 +35,11 @@ class ( Monad a
newtype SariulClocksCGI a =
SCC { getSCC :: StateT (Session, ScoresList) (CGIT IO) a }
- deriving (Monad, MonadIO, MonadState (Session, ScoresList))
+ deriving (Functor, Applicative, Monad, MonadIO, MonadState (Session, ScoresList))
newtype SariulClocksIO a =
SCI { getSCI :: StateT ScoresList IO a }
- deriving (Monad, MonadIO, MonadState ScoresList)
+ deriving (Functor, Applicative, Monad, MonadIO, MonadState ScoresList)
instance MonadCGI SariulClocksCGI where
cgiAddHeader n v = SCC . lift $ cgiAddHeader n v