@@ -1,6 +1,6 @@
11{-# LANGUAGE ConstraintKinds #-}
2+{-# LANGUAGE TypeApplications #-}
23{-# LANGUAGE ScopedTypeVariables #-}
3−{-# LANGUAGE MagicHash #-}
44
55-- | See "Control.Monad.Ether.State.Strict".
66
@@ -26,62 +26,61 @@ module Control.Monad.Ether.Implicit.State.Strict
2626 , execStateT
2727 ) where
2828
29−import GHC.Prim (Proxy#, proxy#)
30−import qualified Control.Monad.Ether.State.Strict as Explicit
29+import qualified Control.Monad.Ether.Ambiguous.State.Strict as A
3130
3231-- | See 'Control.Monad.Ether.State.Strict.StateT'.
33−type StateT s = Explicit.StateT s s
34−
35−-- | See 'Control.Monad.Ether.State.Strict.State'.
36−type State s = Explicit.State s s
32+type StateT s = A.StateT s s
3733
3834-- | See 'Control.Monad.Ether.State.Strict.stateT'.
3935stateT :: (s -> m (a, s)) -> StateT s m a
40−stateT = Explicit.stateT proxy#
36+stateT = A.stateT
4137
4238-- | See 'Control.Monad.Ether.State.Strict.runStateT'.
4339runStateT :: StateT s m a -> s -> m (a, s)
44−runStateT = Explicit.runStateT proxy#
40+runStateT = A.runStateT
4541
4642-- | See 'Control.Monad.Ether.State.Strict.runState'.
4743runState :: State s a -> s -> (a, s)
48−runState = Explicit.runState proxy#
44+runState = A.runState
4945
5046-- | See 'Control.Monad.Ether.State.Strict.evalStateT'.
5147evalStateT :: Monad m => StateT s m a -> s -> m a
52−evalStateT = Explicit.evalStateT proxy#
48+evalStateT = A.evalStateT
49+
50+-- | See 'Control.Monad.Ether.State.Strict.State'.
51+type State s = A.State s s
5352
5453-- | See 'Control.Monad.Ether.State.Strict.evalState'.
5554evalState :: State s a -> s -> a
56−evalState = Explicit.evalState proxy#
55+evalState = A.evalState
5756
5857-- | See 'Control.Monad.Ether.State.Strict.execStateT'.
5958execStateT :: Monad m => StateT s m a -> s -> m s
60−execStateT = Explicit.execStateT proxy#
59+execStateT = A.execStateT
6160
6261-- | See 'Control.Monad.Ether.State.Strict.execState'.
6362execState :: State s a -> s -> s
64−execState = Explicit.execState proxy#
63+execState = A.execState
6564
6665-- | See 'Control.Monad.Ether.State.Strict.MonadState'.
67−type MonadState s = Explicit.MonadState s s
66+type MonadState s = A.MonadState s s
6867
6968-- | See 'Control.Monad.Ether.State.Strict.get'.
7069get :: forall s m . MonadState s m => m s
71−get = Explicit.get (proxy# :: Proxy# s)
70+get = A.get @s
7271
7372-- | See 'Control.Monad.Ether.State.Strict.gets'.
7473gets :: forall s m a . MonadState s m => (s -> a) -> m a
75−gets = Explicit.gets (proxy# :: Proxy# s)
74+gets = A.gets @s
7675
7776-- | See 'Control.Monad.Ether.State.Strict.put'.
7877put :: forall s m . MonadState s m => s -> m ()
79−put = Explicit.put (proxy# :: Proxy# s)
78+put = A.put @s
8079
8180-- | See 'Control.Monad.Ether.State.Strict.state'.
8281state :: forall s m a . MonadState s m => (s -> (a, s)) -> m a
83−state = Explicit.state (proxy# :: Proxy# s)
82+state = A.state @s
8483
8584-- | See 'Control.Monad.Ether.State.Strict.modify'.
8685modify :: forall s m . MonadState s m => (s -> s) -> m ()
87−modify = Explicit.modify (proxy# :: Proxy# s)
86+modify = A.modify @s