on master help sign in
Implicit tagging via ambiguous
4c7619aIndex Int
ether.cabal+1−2
@@ -84,7 +84,7 @@ library
84 MagicHash
84 MagicHash
85 MultiParamTypeClasses
85 MultiParamTypeClasses
86 ScopedTypeVariables
86 ScopedTypeVariables
87− TemplateHaskell
87+ TypeApplications
88 TypeFamilies
88 TypeFamilies
89 TypeOperators
89 TypeOperators
90 UndecidableInstances
90 UndecidableInstances
@@ -127,7 +127,6 @@ test-suite regression
127 LambdaCase
127 LambdaCase
128 PolyKinds
128 PolyKinds
129 ScopedTypeVariables
129 ScopedTypeVariables
130− TemplateHaskell
131 TypeApplications
130 TypeApplications
132 TypeFamilies
131 TypeFamilies
133 TypeOperators
132 TypeOperators
src/Control/Monad/Ether/Implicit/Except.hs+12−13
@@ -1,6 +1,6 @@
1{-# LANGUAGE ConstraintKinds #-}
1{-# LANGUAGE ConstraintKinds #-}
2+{-# LANGUAGE TypeApplications #-}
2{-# LANGUAGE ScopedTypeVariables #-}
3{-# LANGUAGE ScopedTypeVariables #-}
3−{-# LANGUAGE MagicHash #-}
4
4
5-- | See "Control.Monad.Ether.Except".
5-- | See "Control.Monad.Ether.Except".
6
6
@@ -22,42 +22,41 @@ module Control.Monad.Ether.Implicit.Except
22 , handleT
22 , handleT
23 ) where
23 ) where
24
24
25−import GHC.Prim (Proxy#, proxy#)
26−import qualified Control.Monad.Ether.Except as Explicit
25+import qualified Control.Monad.Ether.Ambiguous.Except as A
27
26
28-- | See 'Control.Monad.Ether.Except.MonadExcept'.
27-- | See 'Control.Monad.Ether.Except.MonadExcept'.
29−type MonadExcept e = Explicit.MonadExcept e e
28+type MonadExcept e = A.MonadExcept e e
30
29
31-- | See 'Control.Monad.Ether.Except.throw'.
30-- | See 'Control.Monad.Ether.Except.throw'.
32throw :: forall e m a . MonadExcept e m => e -> m a
31throw :: forall e m a . MonadExcept e m => e -> m a
33−throw = Explicit.throw (proxy# :: Proxy# e)
32+throw = A.throw @e
34
33
35-- | See 'Control.Monad.Ether.Except.catch'.
34-- | See 'Control.Monad.Ether.Except.catch'.
36catch :: forall e m a . MonadExcept e m => m a -> (e -> m a) -> m a
35catch :: forall e m a . MonadExcept e m => m a -> (e -> m a) -> m a
37−catch = Explicit.catch (proxy# :: Proxy# e)
36+catch = A.catch @e
38
37
39-- | See 'Control.Monad.Ether.Except.Except'.
38-- | See 'Control.Monad.Ether.Except.Except'.
40−type Except e = Explicit.Except e e
39+type Except e = A.Except e e
41
40
42-- | See 'Control.Monad.Ether.Except.runExcept'.
41-- | See 'Control.Monad.Ether.Except.runExcept'.
43runExcept :: Except e a -> Either e a
42runExcept :: Except e a -> Either e a
44−runExcept = Explicit.runExcept proxy#
43+runExcept = A.runExcept
45
44
46-- | See 'Control.Monad.Ether.Except.ExceptT'.
45-- | See 'Control.Monad.Ether.Except.ExceptT'.
47−type ExceptT e = Explicit.ExceptT e e
46+type ExceptT e = A.ExceptT e e
48
47
49-- | See 'Control.Monad.Ether.Except.exceptT'.
48-- | See 'Control.Monad.Ether.Except.exceptT'.
50exceptT :: m (Either e a) -> ExceptT e m a
49exceptT :: m (Either e a) -> ExceptT e m a
51−exceptT = Explicit.exceptT proxy#
50+exceptT = A.exceptT
52
51
53-- | See 'Control.Monad.Ether.Except.runExceptT'.
52-- | See 'Control.Monad.Ether.Except.runExceptT'.
54runExceptT :: ExceptT e m a -> m (Either e a)
53runExceptT :: ExceptT e m a -> m (Either e a)
55−runExceptT = Explicit.runExceptT proxy#
54+runExceptT = A.runExceptT
56
55
57-- | See 'Control.Monad.Ether.Except.handle'.
56-- | See 'Control.Monad.Ether.Except.handle'.
58handle :: (e -> a) -> Except e a -> a
57handle :: (e -> a) -> Except e a -> a
59−handle = Explicit.handle proxy#
58+handle = A.handle
60
59
61-- | See 'Control.Monad.Ether.Except.handleT'.
60-- | See 'Control.Monad.Ether.Except.handleT'.
62handleT :: Functor m => (e -> a) -> ExceptT e m a -> m a
61handleT :: Functor m => (e -> a) -> ExceptT e m a -> m a
63−handleT = Explicit.handleT proxy#
62+handleT = A.handleT
src/Control/Monad/Ether/Implicit/Reader.hs+14−15
@@ -1,6 +1,6 @@
1{-# LANGUAGE ConstraintKinds #-}
1{-# LANGUAGE ConstraintKinds #-}
2+{-# LANGUAGE TypeApplications #-}
2{-# LANGUAGE ScopedTypeVariables #-}
3{-# LANGUAGE ScopedTypeVariables #-}
3−{-# LANGUAGE MagicHash #-}
4
4
5-- | See "Control.Monad.Ether.Reader".
5-- | See "Control.Monad.Ether.Reader".
6
6
@@ -21,42 +21,41 @@ module Control.Monad.Ether.Implicit.Reader
21 , runReaderT
21 , runReaderT
22 ) where
22 ) where
23
23
24−import GHC.Prim (Proxy#, proxy#)
25−import qualified Control.Monad.Ether.Reader as Explicit
24+import qualified Control.Monad.Ether.Ambiguous.Reader as A
26
25
27-- | See 'Control.Monad.Ether.Reader.ReaderT'.
26-- | See 'Control.Monad.Ether.Reader.ReaderT'.
28−type ReaderT r = Explicit.ReaderT r r
27+type ReaderT r = A.ReaderT r r
29−
30−-- | See 'Control.Monad.Ether.Reader.Reader'.
31−type Reader r = Explicit.Reader r r
32
28
33-- | See 'Control.Monad.Ether.Reader.readerT'.
29-- | See 'Control.Monad.Ether.Reader.readerT'.
34readerT :: (r -> m a) -> ReaderT r m a
30readerT :: (r -> m a) -> ReaderT r m a
35−readerT = Explicit.readerT proxy#
31+readerT = A.readerT
36
32
37-- | See 'Control.Monad.Ether.Reader.runReaderT'.
33-- | See 'Control.Monad.Ether.Reader.runReaderT'.
38runReaderT :: ReaderT r m a -> r -> m a
34runReaderT :: ReaderT r m a -> r -> m a
39−runReaderT = Explicit.runReaderT proxy#
35+runReaderT = A.runReaderT
36+
37+-- | See 'Control.Monad.Ether.Reader.Reader'.
38+type Reader r = A.Reader r r
40
39
41-- | See 'Control.Monad.Ether.Reader.runReader'.
40-- | See 'Control.Monad.Ether.Reader.runReader'.
42runReader :: Reader r a -> r -> a
41runReader :: Reader r a -> r -> a
43−runReader = Explicit.runReader proxy#
42+runReader = A.runReader
44
43
45-- | See 'Control.Monad.Ether.Reader.MonadReader'.
44-- | See 'Control.Monad.Ether.Reader.MonadReader'.
46−type MonadReader r = Explicit.MonadReader r r
45+type MonadReader r = A.MonadReader r r
47
46
48-- | See 'Control.Monad.Ether.Reader.local'.
47-- | See 'Control.Monad.Ether.Reader.local'.
49local :: forall r m a . MonadReader r m => (r -> r) -> m a -> m a
48local :: forall r m a . MonadReader r m => (r -> r) -> m a -> m a
50−local = Explicit.local (proxy# :: Proxy# r)
49+local = A.local @r
51
50
52-- | See 'Control.Monad.Ether.Reader.ask'.
51-- | See 'Control.Monad.Ether.Reader.ask'.
53ask :: forall r m . MonadReader r m => m r
52ask :: forall r m . MonadReader r m => m r
54−ask = Explicit.ask (proxy# :: Proxy# r)
53+ask = A.ask @r
55
54
56-- | See 'Control.Monad.Ether.Reader.reader'.
55-- | See 'Control.Monad.Ether.Reader.reader'.
57reader :: forall r m a . MonadReader r m => (r -> a) -> m a
56reader :: forall r m a . MonadReader r m => (r -> a) -> m a
58−reader = Explicit.reader (proxy# :: Proxy# r)
57+reader = A.reader @r
59
58
60-- | See 'Control.Monad.Ether.Reader.asks'.
59-- | See 'Control.Monad.Ether.Reader.asks'.
61asks :: forall r m a . MonadReader r m => (r -> a) -> m a
60asks :: forall r m a . MonadReader r m => (r -> a) -> m a
62−asks = Explicit.asks (proxy# :: Proxy# r)
61+asks = A.asks @r
src/Control/Monad/Ether/Implicit/State/Lazy.hs+19−20
@@ -1,6 +1,6 @@
1{-# LANGUAGE ConstraintKinds #-}
1{-# LANGUAGE ConstraintKinds #-}
2+{-# LANGUAGE TypeApplications #-}
2{-# LANGUAGE ScopedTypeVariables #-}
3{-# LANGUAGE ScopedTypeVariables #-}
3−{-# LANGUAGE MagicHash #-}
4
4
5-- | See "Control.Monad.Ether.State.Lazy".
5-- | See "Control.Monad.Ether.State.Lazy".
6
6
@@ -26,62 +26,61 @@ module Control.Monad.Ether.Implicit.State.Lazy
26 , execStateT
26 , execStateT
27 ) where
27 ) where
28
28
29−import GHC.Prim (Proxy#, proxy#)
30−import qualified Control.Monad.Ether.State.Lazy as Explicit
29+import qualified Control.Monad.Ether.Ambiguous.State.Lazy as A
31
30
32-- | See 'Control.Monad.Ether.State.Lazy.StateT'.
31-- | See 'Control.Monad.Ether.State.Lazy.StateT'.
33−type StateT s = Explicit.StateT s s
32+type StateT s = A.StateT s s
34−
35−-- | See 'Control.Monad.Ether.State.Lazy.State'.
36−type State s = Explicit.State s s
37
33
38-- | See 'Control.Monad.Ether.State.Lazy.stateT'.
34-- | See 'Control.Monad.Ether.State.Lazy.stateT'.
39stateT :: (s -> m (a, s)) -> StateT s m a
35stateT :: (s -> m (a, s)) -> StateT s m a
40−stateT = Explicit.stateT proxy#
36+stateT = A.stateT
41
37
42-- | See 'Control.Monad.Ether.State.Lazy.runStateT'.
38-- | See 'Control.Monad.Ether.State.Lazy.runStateT'.
43runStateT :: StateT s m a -> s -> m (a, s)
39runStateT :: StateT s m a -> s -> m (a, s)
44−runStateT = Explicit.runStateT proxy#
40+runStateT = A.runStateT
45
41
46-- | See 'Control.Monad.Ether.State.Lazy.runState'.
42-- | See 'Control.Monad.Ether.State.Lazy.runState'.
47runState :: State s a -> s -> (a, s)
43runState :: State s a -> s -> (a, s)
48−runState = Explicit.runState proxy#
44+runState = A.runState
49
45
50-- | See 'Control.Monad.Ether.State.Lazy.evalStateT'.
46-- | See 'Control.Monad.Ether.State.Lazy.evalStateT'.
51evalStateT :: Monad m => StateT s m a -> s -> m a
47evalStateT :: 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.Lazy.State'.
51+type State s = A.State s s
53
52
54-- | See 'Control.Monad.Ether.State.Lazy.evalState'.
53-- | See 'Control.Monad.Ether.State.Lazy.evalState'.
55evalState :: State s a -> s -> a
54evalState :: State s a -> s -> a
56−evalState = Explicit.evalState proxy#
55+evalState = A.evalState
57
56
58-- | See 'Control.Monad.Ether.State.Lazy.execStateT'.
57-- | See 'Control.Monad.Ether.State.Lazy.execStateT'.
59execStateT :: Monad m => StateT s m a -> s -> m s
58execStateT :: Monad m => StateT s m a -> s -> m s
60−execStateT = Explicit.execStateT proxy#
59+execStateT = A.execStateT
61
60
62-- | See 'Control.Monad.Ether.State.Lazy.execState'.
61-- | See 'Control.Monad.Ether.State.Lazy.execState'.
63execState :: State s a -> s -> s
62execState :: State s a -> s -> s
64−execState = Explicit.execState proxy#
63+execState = A.execState
65
64
66-- | See 'Control.Monad.Ether.State.Lazy.MonadState'.
65-- | See 'Control.Monad.Ether.State.Lazy.MonadState'.
67−type MonadState s = Explicit.MonadState s s
66+type MonadState s = A.MonadState s s
68
67
69-- | See 'Control.Monad.Ether.State.Lazy.get'.
68-- | See 'Control.Monad.Ether.State.Lazy.get'.
70get :: forall s m . MonadState s m => m s
69get :: forall s m . MonadState s m => m s
71−get = Explicit.get (proxy# :: Proxy# s)
70+get = A.get @s
72
71
73-- | See 'Control.Monad.Ether.State.Lazy.gets'.
72-- | See 'Control.Monad.Ether.State.Lazy.gets'.
74gets :: forall s m a . MonadState s m => (s -> a) -> m a
73gets :: forall s m a . MonadState s m => (s -> a) -> m a
75−gets = Explicit.gets (proxy# :: Proxy# s)
74+gets = A.gets @s
76
75
77-- | See 'Control.Monad.Ether.State.Lazy.put'.
76-- | See 'Control.Monad.Ether.State.Lazy.put'.
78put :: forall s m . MonadState s m => s -> m ()
77put :: forall s m . MonadState s m => s -> m ()
79−put = Explicit.put (proxy# :: Proxy# s)
78+put = A.put @s
80
79
81-- | See 'Control.Monad.Ether.State.Lazy.state'.
80-- | See 'Control.Monad.Ether.State.Lazy.state'.
82state :: forall s m a . MonadState s m => (s -> (a, s)) -> m a
81state :: forall s m a . MonadState s m => (s -> (a, s)) -> m a
83−state = Explicit.state (proxy# :: Proxy# s)
82+state = A.state @s
84
83
85-- | See 'Control.Monad.Ether.State.Lazy.modify'.
84-- | See 'Control.Monad.Ether.State.Lazy.modify'.
86modify :: forall s m . MonadState s m => (s -> s) -> m ()
85modify :: forall s m . MonadState s m => (s -> s) -> m ()
87−modify = Explicit.modify (proxy# :: Proxy# s)
86+modify = A.modify @s
src/Control/Monad/Ether/Implicit/State/Strict.hs+19−20
@@ -1,6 +1,6 @@
1{-# LANGUAGE ConstraintKinds #-}
1{-# LANGUAGE ConstraintKinds #-}
2+{-# LANGUAGE TypeApplications #-}
2{-# LANGUAGE ScopedTypeVariables #-}
3{-# LANGUAGE ScopedTypeVariables #-}
3−{-# LANGUAGE MagicHash #-}
4
4
5-- | See "Control.Monad.Ether.State.Strict".
5-- | See "Control.Monad.Ether.State.Strict".
6
6
@@ -26,62 +26,61 @@ module Control.Monad.Ether.Implicit.State.Strict
26 , execStateT
26 , execStateT
27 ) where
27 ) where
28
28
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
31
30
32-- | See 'Control.Monad.Ether.State.Strict.StateT'.
31-- | See 'Control.Monad.Ether.State.Strict.StateT'.
33−type StateT s = Explicit.StateT s s
32+type StateT s = A.StateT s s
34−
35−-- | See 'Control.Monad.Ether.State.Strict.State'.
36−type State s = Explicit.State s s
37
33
38-- | See 'Control.Monad.Ether.State.Strict.stateT'.
34-- | See 'Control.Monad.Ether.State.Strict.stateT'.
39stateT :: (s -> m (a, s)) -> StateT s m a
35stateT :: (s -> m (a, s)) -> StateT s m a
40−stateT = Explicit.stateT proxy#
36+stateT = A.stateT
41
37
42-- | See 'Control.Monad.Ether.State.Strict.runStateT'.
38-- | See 'Control.Monad.Ether.State.Strict.runStateT'.
43runStateT :: StateT s m a -> s -> m (a, s)
39runStateT :: StateT s m a -> s -> m (a, s)
44−runStateT = Explicit.runStateT proxy#
40+runStateT = A.runStateT
45
41
46-- | See 'Control.Monad.Ether.State.Strict.runState'.
42-- | See 'Control.Monad.Ether.State.Strict.runState'.
47runState :: State s a -> s -> (a, s)
43runState :: State s a -> s -> (a, s)
48−runState = Explicit.runState proxy#
44+runState = A.runState
49
45
50-- | See 'Control.Monad.Ether.State.Strict.evalStateT'.
46-- | See 'Control.Monad.Ether.State.Strict.evalStateT'.
51evalStateT :: Monad m => StateT s m a -> s -> m a
47evalStateT :: 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
53
52
54-- | See 'Control.Monad.Ether.State.Strict.evalState'.
53-- | See 'Control.Monad.Ether.State.Strict.evalState'.
55evalState :: State s a -> s -> a
54evalState :: State s a -> s -> a
56−evalState = Explicit.evalState proxy#
55+evalState = A.evalState
57
56
58-- | See 'Control.Monad.Ether.State.Strict.execStateT'.
57-- | See 'Control.Monad.Ether.State.Strict.execStateT'.
59execStateT :: Monad m => StateT s m a -> s -> m s
58execStateT :: Monad m => StateT s m a -> s -> m s
60−execStateT = Explicit.execStateT proxy#
59+execStateT = A.execStateT
61
60
62-- | See 'Control.Monad.Ether.State.Strict.execState'.
61-- | See 'Control.Monad.Ether.State.Strict.execState'.
63execState :: State s a -> s -> s
62execState :: State s a -> s -> s
64−execState = Explicit.execState proxy#
63+execState = A.execState
65
64
66-- | See 'Control.Monad.Ether.State.Strict.MonadState'.
65-- | See 'Control.Monad.Ether.State.Strict.MonadState'.
67−type MonadState s = Explicit.MonadState s s
66+type MonadState s = A.MonadState s s
68
67
69-- | See 'Control.Monad.Ether.State.Strict.get'.
68-- | See 'Control.Monad.Ether.State.Strict.get'.
70get :: forall s m . MonadState s m => m s
69get :: forall s m . MonadState s m => m s
71−get = Explicit.get (proxy# :: Proxy# s)
70+get = A.get @s
72
71
73-- | See 'Control.Monad.Ether.State.Strict.gets'.
72-- | See 'Control.Monad.Ether.State.Strict.gets'.
74gets :: forall s m a . MonadState s m => (s -> a) -> m a
73gets :: forall s m a . MonadState s m => (s -> a) -> m a
75−gets = Explicit.gets (proxy# :: Proxy# s)
74+gets = A.gets @s
76
75
77-- | See 'Control.Monad.Ether.State.Strict.put'.
76-- | See 'Control.Monad.Ether.State.Strict.put'.
78put :: forall s m . MonadState s m => s -> m ()
77put :: forall s m . MonadState s m => s -> m ()
79−put = Explicit.put (proxy# :: Proxy# s)
78+put = A.put @s
80
79
81-- | See 'Control.Monad.Ether.State.Strict.state'.
80-- | See 'Control.Monad.Ether.State.Strict.state'.
82state :: forall s m a . MonadState s m => (s -> (a, s)) -> m a
81state :: forall s m a . MonadState s m => (s -> (a, s)) -> m a
83−state = Explicit.state (proxy# :: Proxy# s)
82+state = A.state @s
84
83
85-- | See 'Control.Monad.Ether.State.Strict.modify'.
84-- | See 'Control.Monad.Ether.State.Strict.modify'.
86modify :: forall s m . MonadState s m => (s -> s) -> m ()
85modify :: forall s m . MonadState s m => (s -> s) -> m ()
87−modify = Explicit.modify (proxy# :: Proxy# s)
86+modify = A.modify @s
src/Control/Monad/Ether/Implicit/Writer.hs+16−17
@@ -1,6 +1,6 @@
1{-# LANGUAGE ConstraintKinds #-}
1{-# LANGUAGE ConstraintKinds #-}
2+{-# LANGUAGE TypeApplications #-}
2{-# LANGUAGE ScopedTypeVariables #-}
3{-# LANGUAGE ScopedTypeVariables #-}
3−{-# LANGUAGE MagicHash #-}
4
4
5-- | See "Control.Monad.Ether.Writer".
5-- | See "Control.Monad.Ether.Writer".
6
6
@@ -25,58 +25,57 @@ module Control.Monad.Ether.Implicit.Writer
25 , execWriterT
25 , execWriterT
26 ) where
26 ) where
27
27
28−import GHC.Prim (Proxy#, proxy#)
29−import qualified Control.Monad.Ether.Writer as Explicit
28+import qualified Control.Monad.Ether.Ambiguous.Writer as A
30
29
31-- | See 'Control.Monad.Ether.Writer.MonadWriter'.
30-- | See 'Control.Monad.Ether.Writer.MonadWriter'.
32−type MonadWriter w = Explicit.MonadWriter w w
31+type MonadWriter w = A.MonadWriter w w
33
32
34-- | See 'Control.Monad.Ether.Writer.writer'.
33-- | See 'Control.Monad.Ether.Writer.writer'.
35writer :: forall w m a . MonadWriter w m => (a, w) -> m a
34writer :: forall w m a . MonadWriter w m => (a, w) -> m a
36−writer = Explicit.writer (proxy# :: Proxy# w)
35+writer = A.writer @w
37
36
38-- | See 'Control.Monad.Ether.Writer.tell'.
37-- | See 'Control.Monad.Ether.Writer.tell'.
39tell :: forall w m . MonadWriter w m => w -> m ()
38tell :: forall w m . MonadWriter w m => w -> m ()
40−tell = Explicit.tell (proxy# :: Proxy# w)
39+tell = A.tell @w
41
40
42-- | See 'Control.Monad.Ether.Writer.listen'.
41-- | See 'Control.Monad.Ether.Writer.listen'.
43listen :: forall w m a . MonadWriter w m => m a -> m (a, w)
42listen :: forall w m a . MonadWriter w m => m a -> m (a, w)
44−listen = Explicit.listen (proxy# :: Proxy# w)
43+listen = A.listen @w
45
44
46-- | See 'Control.Monad.Ether.Writer.pass'.
45-- | See 'Control.Monad.Ether.Writer.pass'.
47pass :: forall w m a . MonadWriter w m => m (a, w -> w) -> m a
46pass :: forall w m a . MonadWriter w m => m (a, w -> w) -> m a
48−pass = Explicit.pass (proxy# :: Proxy# w)
47+pass = A.pass @w
49
48
50-- | See 'Control.Monad.Ether.Writer.listens'.
49-- | See 'Control.Monad.Ether.Writer.listens'.
51listens :: forall w m a b . MonadWriter w m => (w -> b) -> m a -> m (a, b)
50listens :: forall w m a b . MonadWriter w m => (w -> b) -> m a -> m (a, b)
52−listens = Explicit.listens (proxy# :: Proxy# w)
51+listens = A.listens @w
53
52
54-- | See 'Control.Monad.Ether.Writer.censor'.
53-- | See 'Control.Monad.Ether.Writer.censor'.
55censor :: forall w m a . MonadWriter w m => (w -> w) -> m a -> m a
54censor :: forall w m a . MonadWriter w m => (w -> w) -> m a -> m a
56−censor = Explicit.censor (proxy# :: Proxy# w)
55+censor = A.censor @w
57
56
58-- | See 'Control.Monad.Ether.Writer.Writer'.
57-- | See 'Control.Monad.Ether.Writer.Writer'.
59−type Writer w = Explicit.Writer w w
58+type Writer w = A.Writer w w
60
59
61-- | See 'Control.Monad.Ether.Writer.runWriter'.
60-- | See 'Control.Monad.Ether.Writer.runWriter'.
62runWriter :: Writer w a -> (a, w)
61runWriter :: Writer w a -> (a, w)
63−runWriter = Explicit.runWriter proxy#
62+runWriter = A.runWriter
64
63
65-- | See 'Control.Monad.Ether.Writer.execWriter'.
64-- | See 'Control.Monad.Ether.Writer.execWriter'.
66execWriter :: Writer w a -> w
65execWriter :: Writer w a -> w
67−execWriter = Explicit.execWriter proxy#
66+execWriter = A.execWriter
68
67
69-- | See 'Control.Monad.Ether.Writer.WriterT'.
68-- | See 'Control.Monad.Ether.Writer.WriterT'.
70−type WriterT w = Explicit.WriterT w w
69+type WriterT w = A.WriterT w w
71
70
72-- | See 'Control.Monad.Ether.Writer.writerT'.
71-- | See 'Control.Monad.Ether.Writer.writerT'.
73writerT :: m (a, w) -> WriterT w m a
72writerT :: m (a, w) -> WriterT w m a
74−writerT = Explicit.writerT proxy#
73+writerT = A.writerT
75
74
76-- | See 'Control.Monad.Ether.Writer.runWriterT'.
75-- | See 'Control.Monad.Ether.Writer.runWriterT'.
77runWriterT :: WriterT w m a -> m (a, w)
76runWriterT :: WriterT w m a -> m (a, w)
78−runWriterT = Explicit.runWriterT proxy#
77+runWriterT = A.runWriterT
79
78
80-- | See 'Control.Monad.Ether.Writer.execWriterT'.
79-- | See 'Control.Monad.Ether.Writer.execWriterT'.
81execWriterT :: Monad m => WriterT w m a -> m w
80execWriterT :: Monad m => WriterT w m a -> m w
82−execWriterT = Explicit.execWriterT proxy#
81+execWriterT = A.execWriterT