@@ -1,5 +1,8 @@
1{-# LANGUAGE ConstraintKinds #-}
1{-# LANGUAGE ConstraintKinds #-}
2{-# LANGUAGE ScopedTypeVariables #-}
2{-# LANGUAGE ScopedTypeVariables #-}
4+-- | See "Control.Monad.Ether.State.Strict".
3module Control.Monad.Ether.Implicit.State.Strict
6module Control.Monad.Ether.Implicit.State.Strict
5 -- * MonadState class
8 -- * MonadState class
@@ -26,46 +29,63 @@ module Control.Monad.Ether.Implicit.State.Strict
26import Data.Proxy
29import Data.Proxy
27import qualified Control.Monad.Ether.State.Strict as Explicit
30import qualified Control.Monad.Ether.State.Strict as Explicit
32+-- | See 'Control.Monad.Ether.State.Strict.StateT'.
29type StateT s = Explicit.StateT s s
33type StateT s = Explicit.StateT s s
35+-- | See 'Control.Monad.Ether.State.Strict.State'.
30type State s = Explicit.State s s
36type State s = Explicit.State s s
38+-- | See 'Control.Monad.Ether.State.Strict.stateT'.
32stateT :: (s -> m (a, s)) -> StateT s m a
39stateT :: (s -> m (a, s)) -> StateT s m a
33stateT = Explicit.stateT Proxy
40stateT = Explicit.stateT Proxy
42+-- | See 'Control.Monad.Ether.State.Strict.runStateT'.
35runStateT :: StateT s m a -> s -> m (a, s)
43runStateT :: StateT s m a -> s -> m (a, s)
36runStateT = Explicit.runStateT Proxy
44runStateT = Explicit.runStateT Proxy
46+-- | See 'Control.Monad.Ether.State.Strict.runState'.
38runState :: State s a -> s -> (a, s)
47runState :: State s a -> s -> (a, s)
39runState = Explicit.runState Proxy
48runState = Explicit.runState Proxy
50+-- | See 'Control.Monad.Ether.State.Strict.evalStateT'.
41evalStateT :: Monad m => StateT s m a -> s -> m a
51evalStateT :: Monad m => StateT s m a -> s -> m a
42evalStateT = Explicit.evalStateT Proxy
52evalStateT = Explicit.evalStateT Proxy
54+-- | See 'Control.Monad.Ether.State.Strict.evalState'.
44evalState :: State s a -> s -> a
55evalState :: State s a -> s -> a
45evalState = Explicit.evalState Proxy
56evalState = Explicit.evalState Proxy
58+-- | See 'Control.Monad.Ether.State.Strict.execStateT'.
47execStateT :: Monad m => StateT s m a -> s -> m s
59execStateT :: Monad m => StateT s m a -> s -> m s
48execStateT = Explicit.execStateT Proxy
60execStateT = Explicit.execStateT Proxy
62+-- | See 'Control.Monad.Ether.State.Strict.execState'.
50execState :: State s a -> s -> s
63execState :: State s a -> s -> s
51execState = Explicit.execState Proxy
64execState = Explicit.execState Proxy
66+-- | See 'Control.Monad.Ether.State.Strict.mapStateT'.
53mapStateT :: (m (a, s) -> n (b, s)) -> StateT s m a -> StateT s n b
67mapStateT :: (m (a, s) -> n (b, s)) -> StateT s m a -> StateT s n b
54mapStateT = Explicit.mapStateT Proxy
68mapStateT = Explicit.mapStateT Proxy
70+-- | See 'Control.Monad.Ether.State.Strict.MonadState'.
56type MonadState s = Explicit.MonadState s s
71type MonadState s = Explicit.MonadState s s
73+-- | See 'Control.Monad.Ether.State.Strict.get'.
58get :: forall m s . MonadState s m => m s
74get :: forall m s . MonadState s m => m s
59get = Explicit.get (Proxy :: Proxy s)
75get = Explicit.get (Proxy :: Proxy s)
77+-- | See 'Control.Monad.Ether.State.Strict.gets'.
61gets :: forall m s a . MonadState s m => (s -> a) -> m a
78gets :: forall m s a . MonadState s m => (s -> a) -> m a
62gets = Explicit.gets (Proxy :: Proxy s)
79gets = Explicit.gets (Proxy :: Proxy s)
81+-- | See 'Control.Monad.Ether.State.Strict.put'.
64put :: forall m s . MonadState s m => s -> m ()
82put :: forall m s . MonadState s m => s -> m ()
65put = Explicit.put (Proxy :: Proxy s)
83put = Explicit.put (Proxy :: Proxy s)
85+-- | See 'Control.Monad.Ether.State.Strict.state'.
67state :: forall m s a . MonadState s m => (s -> (a, s)) -> m a
86state :: forall m s a . MonadState s m => (s -> (a, s)) -> m a
68state = Explicit.state (Proxy :: Proxy s)
87state = Explicit.state (Proxy :: Proxy s)
89+-- | See 'Control.Monad.Ether.State.Strict.modify'.
70modify :: forall m s . MonadState s m => (s -> s) -> m ()
90modify :: forall m s . MonadState s m => (s -> s) -> m ()
71modify = Explicit.modify (Proxy :: Proxy s)
91modify = Explicit.modify (Proxy :: Proxy s)