instance MonadState s m => MonadState s (ExceptT e m)
authorEdward Kmett <ekmett@gmail.com>
Mon, 5 May 2014 13:18:36 +0000 (23:18 +1000)
committerEdward Kmett <ekmett@gmail.com>
Mon, 5 May 2014 13:18:36 +0000 (23:18 +1000)
Control/Monad/State/Class.hs

index 4b9e181..3034e5f 100644 (file)
@@ -30,6 +30,7 @@ module Control.Monad.State.Class (
 
 import Control.Monad.Trans.Cont
 import Control.Monad.Trans.Error
+import Control.Monad.Trans.Except
 import Control.Monad.Trans.Identity
 import Control.Monad.Trans.List
 import Control.Monad.Trans.Maybe
@@ -127,6 +128,11 @@ instance (Error e, MonadState s m) => MonadState s (ErrorT e m) where
     put = lift . put
     state = lift . state
 
+instance MonadState s m => MonadState s (ExceptT e m) where
+    get = lift get
+    put = lift . put
+    state = lift . state
+
 instance MonadState s m => MonadState s (IdentityT m) where
     get = lift get
     put = lift . put