on master help sign in
Remove CPP from Effectful.Writer as it no longer triggers the GHC bug
70ee4f3Andrzej Rybczak
src/Effectful/Writer.hs−6
@@ -1,4 +1,3 @@
1−{-# LANGUAGE CPP #-}
2-- | The 'Writer' as an effect.
1-- | The 'Writer' as an effect.
3module Effectful.Writer
2module Effectful.Writer
4 ( Writer
3 ( Writer
@@ -41,17 +40,12 @@ listen
41 => Eff es a
40 => Eff es a
42 -> Eff es (a, w)
41 -> Eff es (a, w)
43listen (Eff m) = unsafeEff $ \es -> mask $ \restore -> do
42listen (Eff m) = unsafeEff $ \es -> mask $ \restore -> do
44−#if __GLASGOW_HASKELL__ >= 900
45− error $ "'listen' temporarily doesn't compile with released GHC 9.* versions"
46− ++ " due to a GHC bug. If you want to use 'listen', please use GHC 8.*"
47−#else
48 w0 <- unsafeStateEnv (\(IdE (Writer w)) -> (w, IdE (Writer mempty))) es
43 w0 <- unsafeStateEnv (\(IdE (Writer w)) -> (w, IdE (Writer mempty))) es
49 -- 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.
50 a <- restore (m es) `onException`
45 a <- restore (m es) `onException`
51 unsafeModifyEnv (\(IdE (Writer w)) -> IdE (Writer (w0 `mappend` w))) es
46 unsafeModifyEnv (\(IdE (Writer w)) -> IdE (Writer (w0 `mappend` w))) es
52 w1 <- unsafeStateEnv (\(IdE (Writer w)) -> (w, IdE (Writer (w0 `mappend` w)))) es
47 w1 <- unsafeStateEnv (\(IdE (Writer w)) -> (w, IdE (Writer (w0 `mappend` w)))) es
53 pure (a, w1)
48 pure (a, w1)
54−#endif
55
49
56listens
50listens
57 :: (Writer w :> es, Monoid w)
51 :: (Writer w :> es, Monoid w)