@@ -30,10 +30,10 @@ execWriter m = do
32writer :: (Writer w :> es, Monoid w) => (a, w) -> Eff es a
32writer :: (Writer w :> es, Monoid w) => (a, w) -> Eff es a
33−writer (a, w) = stateEffect $ \(IdE (Writer w0)) -> (a, IdE (Writer (w0 `mappend` w)))
33+writer (a, w) = stateEffect $ \(IdE (Writer w0)) -> (a, IdE (Writer (w0 <> w)))
35tell :: (Writer w :> es, Monoid w) => w -> Eff es ()
35tell :: (Writer w :> es, Monoid w) => w -> Eff es ()
36−tell w = stateEffect $ \(IdE (Writer w0)) -> ((), IdE (Writer (w0 `mappend` w)))
36+tell w = stateEffect $ \(IdE (Writer w0)) -> ((), IdE (Writer (w0 <> w)))
39 :: forall w es a. (Writer w :> es, Monoid w)
39 :: forall w es a. (Writer w :> es, Monoid w)
@@ -43,8 +43,8 @@ listen (Eff m) = unsafeEff $ \es -> mask $ \restore -> do
43 w0 <- unsafeStateEnv (\(IdE (Writer w)) -> (w, IdE (Writer mempty))) es
43 w0 <- unsafeStateEnv (\(IdE (Writer w)) -> (w, IdE (Writer mempty))) es
44 -- If an exception is thrown, restore e0 and keep parts of e1.
44 -- If an exception is thrown, restore e0 and keep parts of e1.
45 a <- restore (m es) `onException`
45 a <- restore (m es) `onException`
46− unsafeModifyEnv (\(IdE (Writer w)) -> IdE (Writer (w0 `mappend` w))) es
46+ unsafeModifyEnv (\(IdE (Writer w)) -> IdE (Writer (w0 <> w))) es
47− w1 <- unsafeStateEnv (\(IdE (Writer w)) -> (w, IdE (Writer (w0 `mappend` w)))) es
47+ w1 <- unsafeStateEnv (\(IdE (Writer w)) -> (w, IdE (Writer (w0 <> w)))) es
48 pure (a, w1)
48 pure (a, w1)