@@ -10,7 +10,6 @@ module Effectful.Writer.Dynamic
10 , execWriterMVar
10 , execWriterMVar
12 -- * Operations
12 -- * Operations
@@ -24,7 +23,6 @@ import qualified Effectful.Writer as WP
24import qualified Effectful.Writer.MVar as WM
23import qualified Effectful.Writer.MVar as WM
26data Writer w :: Effect where
25data Writer w :: Effect where
27− Writer :: (a, w) -> Writer w m a
28 Tell :: ~w -> Writer w m ()
26 Tell :: ~w -> Writer w m ()
29 Listen :: m a -> Writer w m (a, w)
27 Listen :: m a -> Writer w m (a, w)
@@ -43,7 +41,6 @@ writerPure
43 -> Writer w (Eff es) a
41 -> Writer w (Eff es) a
44 -> Eff localEs a
42 -> Eff localEs a
45writerPure run = \case
43writerPure run = \case
46− Writer aw -> WP.writer aw
47 Tell w -> WP.tell w
44 Tell w -> WP.tell w
48 Listen m -> WP.listen (run m)
45 Listen m -> WP.listen (run m)
@@ -62,16 +59,12 @@ writerMVar
62 -> Writer w (Eff es) a
59 -> Writer w (Eff es) a
63 -> Eff localEs a
60 -> Eff localEs a
64writerMVar run = \case
61writerMVar run = \case
65− Writer aw -> WM.writer aw
66 Tell w -> WM.tell w
62 Tell w -> WM.tell w
67 Listen m -> WM.listen (run m)
63 Listen m -> WM.listen (run m)
69----------------------------------------
65----------------------------------------
70-- Operations
66-- Operations
72−writer :: (Writer w :> es, Monoid w) => (a, w) -> Eff es a
73−writer = send . Writer
75tell :: (Writer w :> es, Monoid w) => w -> Eff es ()
68tell :: (Writer w :> es, Monoid w) => w -> Eff es ()
76tell = send . Tell
69tell = send . Tell