From a86e55bbcc6d5b23ab11312d3ca94a745bea5ed9 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Thu, 11 Feb 2016 20:38:57 +0000 Subject: MonadState instance for QueueManager --- server/src/Thermoprint/Server/Queue.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'server/src') diff --git a/server/src/Thermoprint/Server/Queue.hs b/server/src/Thermoprint/Server/Queue.hs index 832b876..d5ab42b 100644 --- a/server/src/Thermoprint/Server/Queue.hs +++ b/server/src/Thermoprint/Server/Queue.hs @@ -1,4 +1,4 @@ -{-# LANGUAGE FlexibleInstances, FlexibleContexts #-} +{-# LANGUAGE FlexibleInstances, FlexibleContexts, MultiParamTypeClasses #-} {-# LANGUAGE ViewPatterns #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE DeriveGeneric, DeriveAnyClass #-} @@ -125,6 +125,9 @@ toZipper = Set.foldr' insert def type QueueManager t = QueueManagerM t (Extended Micro) type QueueManagerM t = ComposeT (StateT Queue) t STM +instance (Monad (StateT s (g m)), Monad (g m)) => MonadState s (ComposeT (StateT s) g m) where + state = ComposeT . state + runQM :: ( HasQueue q , MFunctor t , MonadTrans t -- cgit v1.2.3