on master help sign in
Remove writer function
commitb9c42c9efb64d8550a39ac34540dc62f8c4f6552 authorAndrzej Rybczak <andrzej@rybczak.net> dateMon 28 Jun 2021, 21:50 (5 years ago) parentd92b4a7
4 files changed−28
src/Effectful/Class/Writer.hs−11 src/Effectful/Writer.hs−4 src/Effectful/Writer/Dynamic.hs−7 src/Effectful/Writer/MVar.hs−6
src/Effectful/Class/Writer.hs−11
@@ -11,16 +11,7 @@ import qualified Effectful.Writer.Dynamic as W
1111-- | Compatiblity layer for a transition period from MTL-style effect handling
1212-- to 'Effectful.Eff'.
1313class Monad m => MonadWriter w m where
14− {-# MINIMAL (writer | tell), listen #-}
15−
16− writer :: (a, w) -> m a
17− writer (a, w) = do
18− tell w
19− pure a
20−
2114 tell :: w -> m ()
22− tell w = writer ((), w)
23−
2415 listen :: m a -> m (a, w)
2516
2617-- | Generic, overlappable instance.
@@ -29,14 +20,12 @@ instance {-# OVERLAPPABLE #-}
2920 , MonadTransControl t
3021 , Monad (t m)
3122 ) => MonadWriter w (t m) where
32− writer = lift . writer
3323 tell = lift . tell
3424 listen m = do
3525 (stT, w) <- liftWith $ \run -> listen (run m)
3626 (, w) <$> restoreT (pure stT)
3727
3828instance (W.Writer w :> es, Monoid w) => MonadWriter w (Eff es) where
39− writer = W.writer
4029 tell = W.tell
4130 listen = W.listen
4231
src/Effectful/Writer.hs−4
@@ -3,7 +3,6 @@ module Effectful.Writer
33 ( Writer
44 , runWriter
55 , execWriter
6− , writer
76 , tell
87 , listen
98 , listens
@@ -30,9 +29,6 @@ execWriter m = do
3029 IdE (Writer w) <- execEffect (IdE (Writer mempty)) m
3130 pure w
3231
33−writer :: (Writer w :> es, Monoid w) => (a, w) -> Eff es a
34−writer (a, w) = stateEffect $ \(IdE (Writer w0)) -> (a, IdE (Writer (w0 <> w)))
35−
3632tell :: (Writer w :> es, Monoid w) => w -> Eff es ()
3733tell w = stateEffect $ \(IdE (Writer w0)) -> ((), IdE (Writer (w0 <> w)))
3834
src/Effectful/Writer/Dynamic.hs−7
@@ -10,7 +10,6 @@ module Effectful.Writer.Dynamic
1010 , execWriterMVar
1111
1212 -- * Operations
13− , writer
1413 , tell
1514 , listen
1615 , listens
@@ -24,7 +23,6 @@ import qualified Effectful.Writer as WP
2423import qualified Effectful.Writer.MVar as WM
2524
2625data Writer w :: Effect where
27− Writer :: (a, w) -> Writer w m a
2826 Tell :: ~w -> Writer w m ()
2927 Listen :: m a -> Writer w m (a, w)
3028
@@ -43,7 +41,6 @@ writerPure
4341 -> Writer w (Eff es) a
4442 -> Eff localEs a
4543writerPure run = \case
46− Writer aw -> WP.writer aw
4744 Tell w -> WP.tell w
4845 Listen m -> WP.listen (run m)
4946
@@ -62,16 +59,12 @@ writerMVar
6259 -> Writer w (Eff es) a
6360 -> Eff localEs a
6461writerMVar run = \case
65− Writer aw -> WM.writer aw
6662 Tell w -> WM.tell w
6763 Listen m -> WM.listen (run m)
6864
6965----------------------------------------
7066-- Operations
7167
72−writer :: (Writer w :> es, Monoid w) => (a, w) -> Eff es a
73−writer = send . Writer
74−
7568tell :: (Writer w :> es, Monoid w) => w -> Eff es ()
7669tell = send . Tell
7770
src/Effectful/Writer/MVar.hs−6
@@ -2,7 +2,6 @@ module Effectful.Writer.MVar
22 ( Writer
33 , runWriter
44 , execWriter
5− , writer
65 , tell
76 , listen
87 , listens
@@ -31,11 +30,6 @@ execWriter m = do
3130 _ <- evalEffect (IdE (Writer v)) m
3231 unsafeEff_ $ readMVar v
3332
34−writer :: (Writer w :> es, Monoid w) => (a, w) -> Eff es a
35−writer (a, w1) = do
36− IdE (Writer v) <- getEffect
37− unsafeEff_ . modifyMVar v $ \w0 -> let w = w0 <> w1 in w `seq` pure (w, a)
38−
3933tell :: (Writer w :> es, Monoid w) => w -> Eff es ()
4034tell w1 = do
4135 IdE (Writer v) <- getEffect