The library mmtl has a MonadFix (Codensity m) instance
-- still need to prove that MonadFix laws hold
instance MonadFix m => MonadFix (Codensity m) where
mfix :: (a -> Codensity m a) -> Codensity m a
mfix f = lift (mfix (lowerCodensity . f))
https://hackage.haskell.org/package/mmtl-0.1/docs/Control-Monad-Codensity.html
The library mmtl has a
MonadFix (Codensity m)instancehttps://hackage.haskell.org/package/mmtl-0.1/docs/Control-Monad-Codensity.html