@@ -41,6 +41,7 @@ import Control.Applicative (liftA2)
41import Control.Concurrent (myThreadId)
41import Control.Concurrent (myThreadId)
42import Control.Monad.Base
42import Control.Monad.Base
43import Control.Monad.Catch
43import Control.Monad.Catch
44+import Control.Monad.Fix
44import Control.Monad.IO.Class
45import Control.Monad.IO.Class
45import Control.Monad.IO.Unlift
46import Control.Monad.IO.Unlift
46import Control.Monad.Trans.Control
47import Control.Monad.Trans.Control
@@ -137,6 +138,9 @@ instance Monad (Eff es) where
137 -- https://gitlab.haskell.org/ghc/ghc/-/issues/20008
138 -- https://gitlab.haskell.org/ghc/ghc/-/issues/20008
138 Eff ma >> Eff mb = unsafeEff $ \es -> ma es >> mb es
139 Eff ma >> Eff mb = unsafeEff $ \es -> ma es >> mb es
141+instance MonadFix (Eff es) where
142+ mfix f = unsafeEff $ \es -> mfix $ \a -> unEff (f a) es
140----------------------------------------
144----------------------------------------
141-- Exception
145-- Exception