From ee1e5a545df5cb22df208ff5bbb01c2eadc05518 Mon Sep 17 00:00:00 2001 From: Judah Jacobson <judah.jacobson@gmail.com> Date: Sat, 14 Nov 2009 19:38:00 +0000 Subject: [PATCH] Add gets to Monad.hs. --- System/Console/Haskeline/Monads.hs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/System/Console/Haskeline/Monads.hs b/System/Console/Haskeline/Monads.hs index 1dd58dd..54e8693 100644 --- a/System/Console/Haskeline/Monads.hs +++ b/System/Console/Haskeline/Monads.hs @@ -6,6 +6,7 @@ module System.Console.Haskeline.Monads( asks, StateT(..), evalStateT', + gets, modify, update, MonadReader(..), @@ -17,7 +18,7 @@ import System.Console.Haskeline.MonadException import Control.Monad.Reader hiding (MonadReader,ask,asks,local) import qualified Control.Monad.Reader as Reader -import Control.Monad.State hiding (MonadState,get,put,modify) +import Control.Monad.State hiding (MonadState,get,put,gets,modify) import qualified Control.Monad.State as State class Monad m => MonadReader r m where @@ -47,6 +48,8 @@ instance (MonadState s m, MonadTrans t, Monad (t m)) => MonadState s (t m) where get = lift get put = lift . put +gets :: MonadState s m => (s -> a) -> m a +gets f = liftM f get modify :: MonadState s m => (s -> s) -> m () modify f = get >>= put . f -- GitLab